/*
 * Copyright Codeplay Software Ltd.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use these files except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

// DO NOT MODIFY BY HAND
// This file was automatically generated by generate_pooling_tests.py.
// Results calculated using Tensorflow v1.12.0.

#include <gtest/gtest.h>

#include "sycldnn/padding_mode.h"

#include "sycldnn/pooling/operators.h"

#include "test/types/cartesian_product.h"
#include "test/types/kernel_data_types.h"
#include "test/types/test_backend_types.h"
#include "test/types/to_gtest_types.h"

#include "test/pooling/pooling_fixture.h"

#include <array>
#include <vector>

using namespace sycldnn;  // NOLINT(google-build-using-namespace)
using DataTypeList = sycldnn::types::KernelDataTypes;
using Backends = sycldnn::types::DefaultBackendTypes;

using SNNTypePairs =
    sycldnn::types::CartesianProduct<DataTypeList, Backends>::type;
using GTestTypePairs = sycldnn::types::ToGTestTypes<SNNTypePairs>::type;

template <typename Pair>
using MaxwithnanWindow11Stride1Forward =
    PoolingFixture<typename Pair::FirstType, typename Pair::SecondType,
                   pooling::MaxWithNan, pooling::Forward>;
TYPED_TEST_SUITE(MaxwithnanWindow11Stride1Forward, GTestTypePairs);
TYPED_TEST(MaxwithnanWindow11Stride1Forward, SAME1x12x12x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      66.,  67.,  68.,  69.,  70.,  71.,  72.,  72.,  72.,  72.,  72.,  72.,
      78.,  79.,  80.,  81.,  82.,  83.,  84.,  84.,  84.,  84.,  84.,  84.,
      90.,  91.,  92.,  93.,  94.,  95.,  96.,  96.,  96.,  96.,  96.,  96.,
      102., 103., 104., 105., 106., 107., 108., 108., 108., 108., 108., 108.,
      114., 115., 116., 117., 118., 119., 120., 120., 120., 120., 120., 120.,
      126., 127., 128., 129., 130., 131., 132., 132., 132., 132., 132., 132.,
      138., 139., 140., 141., 142., 143., 144., 144., 144., 144., 144., 144.,
      138., 139., 140., 141., 142., 143., 144., 144., 144., 144., 144., 144.,
      138., 139., 140., 141., 142., 143., 144., 144., 144., 144., 144., 144.,
      138., 139., 140., 141., 142., 143., 144., 144., 144., 144., 144., 144.,
      138., 139., 140., 141., 142., 143., 144., 144., 144., 144., 144., 144.,
      138., 139., 140., 141., 142., 143., 144., 144., 144., 144., 144., 144.};
  const std::array<int, 4> in_shape = {{1, 12, 12, 1}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, VALID1x12x12x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {131., 132., 143., 144.};
  const std::array<int, 4> in_shape = {{1, 12, 12, 1}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, SAME1x12x12x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      131., 132., 133., 134., 135., 136., 137., 138., 139., 140., 141., 142.,
      143., 144., 143., 144., 143., 144., 143., 144., 143., 144., 143., 144.,
      155., 156., 157., 158., 159., 160., 161., 162., 163., 164., 165., 166.,
      167., 168., 167., 168., 167., 168., 167., 168., 167., 168., 167., 168.,
      179., 180., 181., 182., 183., 184., 185., 186., 187., 188., 189., 190.,
      191., 192., 191., 192., 191., 192., 191., 192., 191., 192., 191., 192.,
      203., 204., 205., 206., 207., 208., 209., 210., 211., 212., 213., 214.,
      215., 216., 215., 216., 215., 216., 215., 216., 215., 216., 215., 216.,
      227., 228., 229., 230., 231., 232., 233., 234., 235., 236., 237., 238.,
      239., 240., 239., 240., 239., 240., 239., 240., 239., 240., 239., 240.,
      251., 252., 253., 254., 255., 256., 257., 258., 259., 260., 261., 262.,
      263., 264., 263., 264., 263., 264., 263., 264., 263., 264., 263., 264.,
      275., 276., 277., 278., 279., 280., 281., 282., 283., 284., 285., 286.,
      287., 288., 287., 288., 287., 288., 287., 288., 287., 288., 287., 288.,
      275., 276., 277., 278., 279., 280., 281., 282., 283., 284., 285., 286.,
      287., 288., 287., 288., 287., 288., 287., 288., 287., 288., 287., 288.,
      275., 276., 277., 278., 279., 280., 281., 282., 283., 284., 285., 286.,
      287., 288., 287., 288., 287., 288., 287., 288., 287., 288., 287., 288.,
      275., 276., 277., 278., 279., 280., 281., 282., 283., 284., 285., 286.,
      287., 288., 287., 288., 287., 288., 287., 288., 287., 288., 287., 288.,
      275., 276., 277., 278., 279., 280., 281., 282., 283., 284., 285., 286.,
      287., 288., 287., 288., 287., 288., 287., 288., 287., 288., 287., 288.,
      275., 276., 277., 278., 279., 280., 281., 282., 283., 284., 285., 286.,
      287., 288., 287., 288., 287., 288., 287., 288., 287., 288., 287., 288.};
  const std::array<int, 4> in_shape = {{1, 12, 12, 2}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, VALID1x12x12x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {261., 262., 263., 264.,
                                         285., 286., 287., 288.};
  const std::array<int, 4> in_shape = {{1, 12, 12, 2}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, SAME1x12x12x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      261., 262., 263., 264., 265., 266., 267., 268., 269., 270., 271., 272.,
      273., 274., 275., 276., 277., 278., 279., 280., 281., 282., 283., 284.,
      285., 286., 287., 288., 285., 286., 287., 288., 285., 286., 287., 288.,
      285., 286., 287., 288., 285., 286., 287., 288., 285., 286., 287., 288.,
      309., 310., 311., 312., 313., 314., 315., 316., 317., 318., 319., 320.,
      321., 322., 323., 324., 325., 326., 327., 328., 329., 330., 331., 332.,
      333., 334., 335., 336., 333., 334., 335., 336., 333., 334., 335., 336.,
      333., 334., 335., 336., 333., 334., 335., 336., 333., 334., 335., 336.,
      357., 358., 359., 360., 361., 362., 363., 364., 365., 366., 367., 368.,
      369., 370., 371., 372., 373., 374., 375., 376., 377., 378., 379., 380.,
      381., 382., 383., 384., 381., 382., 383., 384., 381., 382., 383., 384.,
      381., 382., 383., 384., 381., 382., 383., 384., 381., 382., 383., 384.,
      405., 406., 407., 408., 409., 410., 411., 412., 413., 414., 415., 416.,
      417., 418., 419., 420., 421., 422., 423., 424., 425., 426., 427., 428.,
      429., 430., 431., 432., 429., 430., 431., 432., 429., 430., 431., 432.,
      429., 430., 431., 432., 429., 430., 431., 432., 429., 430., 431., 432.,
      453., 454., 455., 456., 457., 458., 459., 460., 461., 462., 463., 464.,
      465., 466., 467., 468., 469., 470., 471., 472., 473., 474., 475., 476.,
      477., 478., 479., 480., 477., 478., 479., 480., 477., 478., 479., 480.,
      477., 478., 479., 480., 477., 478., 479., 480., 477., 478., 479., 480.,
      501., 502., 503., 504., 505., 506., 507., 508., 509., 510., 511., 512.,
      513., 514., 515., 516., 517., 518., 519., 520., 521., 522., 523., 524.,
      525., 526., 527., 528., 525., 526., 527., 528., 525., 526., 527., 528.,
      525., 526., 527., 528., 525., 526., 527., 528., 525., 526., 527., 528.,
      549., 550., 551., 552., 553., 554., 555., 556., 557., 558., 559., 560.,
      561., 562., 563., 564., 565., 566., 567., 568., 569., 570., 571., 572.,
      573., 574., 575., 576., 573., 574., 575., 576., 573., 574., 575., 576.,
      573., 574., 575., 576., 573., 574., 575., 576., 573., 574., 575., 576.,
      549., 550., 551., 552., 553., 554., 555., 556., 557., 558., 559., 560.,
      561., 562., 563., 564., 565., 566., 567., 568., 569., 570., 571., 572.,
      573., 574., 575., 576., 573., 574., 575., 576., 573., 574., 575., 576.,
      573., 574., 575., 576., 573., 574., 575., 576., 573., 574., 575., 576.,
      549., 550., 551., 552., 553., 554., 555., 556., 557., 558., 559., 560.,
      561., 562., 563., 564., 565., 566., 567., 568., 569., 570., 571., 572.,
      573., 574., 575., 576., 573., 574., 575., 576., 573., 574., 575., 576.,
      573., 574., 575., 576., 573., 574., 575., 576., 573., 574., 575., 576.,
      549., 550., 551., 552., 553., 554., 555., 556., 557., 558., 559., 560.,
      561., 562., 563., 564., 565., 566., 567., 568., 569., 570., 571., 572.,
      573., 574., 575., 576., 573., 574., 575., 576., 573., 574., 575., 576.,
      573., 574., 575., 576., 573., 574., 575., 576., 573., 574., 575., 576.,
      549., 550., 551., 552., 553., 554., 555., 556., 557., 558., 559., 560.,
      561., 562., 563., 564., 565., 566., 567., 568., 569., 570., 571., 572.,
      573., 574., 575., 576., 573., 574., 575., 576., 573., 574., 575., 576.,
      573., 574., 575., 576., 573., 574., 575., 576., 573., 574., 575., 576.,
      549., 550., 551., 552., 553., 554., 555., 556., 557., 558., 559., 560.,
      561., 562., 563., 564., 565., 566., 567., 568., 569., 570., 571., 572.,
      573., 574., 575., 576., 573., 574., 575., 576., 573., 574., 575., 576.,
      573., 574., 575., 576., 573., 574., 575., 576., 573., 574., 575., 576.};
  const std::array<int, 4> in_shape = {{1, 12, 12, 4}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, VALID1x12x12x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {521., 522., 523., 524., 525., 526.,
                                         527., 528., 569., 570., 571., 572.,
                                         573., 574., 575., 576.};
  const std::array<int, 4> in_shape = {{1, 12, 12, 4}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, SAME1x12x13x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      71.,  72.,  73.,  74.,  75.,  76.,  77.,  78.,  78.,  78.,  78.,  78.,
      78.,  84.,  85.,  86.,  87.,  88.,  89.,  90.,  91.,  91.,  91.,  91.,
      91.,  91.,  97.,  98.,  99.,  100., 101., 102., 103., 104., 104., 104.,
      104., 104., 104., 110., 111., 112., 113., 114., 115., 116., 117., 117.,
      117., 117., 117., 117., 123., 124., 125., 126., 127., 128., 129., 130.,
      130., 130., 130., 130., 130., 136., 137., 138., 139., 140., 141., 142.,
      143., 143., 143., 143., 143., 143., 149., 150., 151., 152., 153., 154.,
      155., 156., 156., 156., 156., 156., 156., 149., 150., 151., 152., 153.,
      154., 155., 156., 156., 156., 156., 156., 156., 149., 150., 151., 152.,
      153., 154., 155., 156., 156., 156., 156., 156., 156., 149., 150., 151.,
      152., 153., 154., 155., 156., 156., 156., 156., 156., 156., 149., 150.,
      151., 152., 153., 154., 155., 156., 156., 156., 156., 156., 156., 149.,
      150., 151., 152., 153., 154., 155., 156., 156., 156., 156., 156., 156.};
  const std::array<int, 4> in_shape = {{1, 12, 13, 1}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, VALID1x12x13x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {141., 142., 143., 154., 155., 156.};
  const std::array<int, 4> in_shape = {{1, 12, 13, 1}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, SAME1x12x13x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      141., 142., 143., 144., 145., 146., 147., 148., 149., 150., 151., 152.,
      153., 154., 155., 156., 155., 156., 155., 156., 155., 156., 155., 156.,
      155., 156., 167., 168., 169., 170., 171., 172., 173., 174., 175., 176.,
      177., 178., 179., 180., 181., 182., 181., 182., 181., 182., 181., 182.,
      181., 182., 181., 182., 193., 194., 195., 196., 197., 198., 199., 200.,
      201., 202., 203., 204., 205., 206., 207., 208., 207., 208., 207., 208.,
      207., 208., 207., 208., 207., 208., 219., 220., 221., 222., 223., 224.,
      225., 226., 227., 228., 229., 230., 231., 232., 233., 234., 233., 234.,
      233., 234., 233., 234., 233., 234., 233., 234., 245., 246., 247., 248.,
      249., 250., 251., 252., 253., 254., 255., 256., 257., 258., 259., 260.,
      259., 260., 259., 260., 259., 260., 259., 260., 259., 260., 271., 272.,
      273., 274., 275., 276., 277., 278., 279., 280., 281., 282., 283., 284.,
      285., 286., 285., 286., 285., 286., 285., 286., 285., 286., 285., 286.,
      297., 298., 299., 300., 301., 302., 303., 304., 305., 306., 307., 308.,
      309., 310., 311., 312., 311., 312., 311., 312., 311., 312., 311., 312.,
      311., 312., 297., 298., 299., 300., 301., 302., 303., 304., 305., 306.,
      307., 308., 309., 310., 311., 312., 311., 312., 311., 312., 311., 312.,
      311., 312., 311., 312., 297., 298., 299., 300., 301., 302., 303., 304.,
      305., 306., 307., 308., 309., 310., 311., 312., 311., 312., 311., 312.,
      311., 312., 311., 312., 311., 312., 297., 298., 299., 300., 301., 302.,
      303., 304., 305., 306., 307., 308., 309., 310., 311., 312., 311., 312.,
      311., 312., 311., 312., 311., 312., 311., 312., 297., 298., 299., 300.,
      301., 302., 303., 304., 305., 306., 307., 308., 309., 310., 311., 312.,
      311., 312., 311., 312., 311., 312., 311., 312., 311., 312., 297., 298.,
      299., 300., 301., 302., 303., 304., 305., 306., 307., 308., 309., 310.,
      311., 312., 311., 312., 311., 312., 311., 312., 311., 312., 311., 312.};
  const std::array<int, 4> in_shape = {{1, 12, 13, 2}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, VALID1x12x13x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {281., 282., 283., 284., 285., 286.,
                                         307., 308., 309., 310., 311., 312.};
  const std::array<int, 4> in_shape = {{1, 12, 13, 2}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, SAME1x12x13x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      281., 282., 283., 284., 285., 286., 287., 288., 289., 290., 291., 292.,
      293., 294., 295., 296., 297., 298., 299., 300., 301., 302., 303., 304.,
      305., 306., 307., 308., 309., 310., 311., 312., 309., 310., 311., 312.,
      309., 310., 311., 312., 309., 310., 311., 312., 309., 310., 311., 312.,
      309., 310., 311., 312., 333., 334., 335., 336., 337., 338., 339., 340.,
      341., 342., 343., 344., 345., 346., 347., 348., 349., 350., 351., 352.,
      353., 354., 355., 356., 357., 358., 359., 360., 361., 362., 363., 364.,
      361., 362., 363., 364., 361., 362., 363., 364., 361., 362., 363., 364.,
      361., 362., 363., 364., 361., 362., 363., 364., 385., 386., 387., 388.,
      389., 390., 391., 392., 393., 394., 395., 396., 397., 398., 399., 400.,
      401., 402., 403., 404., 405., 406., 407., 408., 409., 410., 411., 412.,
      413., 414., 415., 416., 413., 414., 415., 416., 413., 414., 415., 416.,
      413., 414., 415., 416., 413., 414., 415., 416., 413., 414., 415., 416.,
      437., 438., 439., 440., 441., 442., 443., 444., 445., 446., 447., 448.,
      449., 450., 451., 452., 453., 454., 455., 456., 457., 458., 459., 460.,
      461., 462., 463., 464., 465., 466., 467., 468., 465., 466., 467., 468.,
      465., 466., 467., 468., 465., 466., 467., 468., 465., 466., 467., 468.,
      465., 466., 467., 468., 489., 490., 491., 492., 493., 494., 495., 496.,
      497., 498., 499., 500., 501., 502., 503., 504., 505., 506., 507., 508.,
      509., 510., 511., 512., 513., 514., 515., 516., 517., 518., 519., 520.,
      517., 518., 519., 520., 517., 518., 519., 520., 517., 518., 519., 520.,
      517., 518., 519., 520., 517., 518., 519., 520., 541., 542., 543., 544.,
      545., 546., 547., 548., 549., 550., 551., 552., 553., 554., 555., 556.,
      557., 558., 559., 560., 561., 562., 563., 564., 565., 566., 567., 568.,
      569., 570., 571., 572., 569., 570., 571., 572., 569., 570., 571., 572.,
      569., 570., 571., 572., 569., 570., 571., 572., 569., 570., 571., 572.,
      593., 594., 595., 596., 597., 598., 599., 600., 601., 602., 603., 604.,
      605., 606., 607., 608., 609., 610., 611., 612., 613., 614., 615., 616.,
      617., 618., 619., 620., 621., 622., 623., 624., 621., 622., 623., 624.,
      621., 622., 623., 624., 621., 622., 623., 624., 621., 622., 623., 624.,
      621., 622., 623., 624., 593., 594., 595., 596., 597., 598., 599., 600.,
      601., 602., 603., 604., 605., 606., 607., 608., 609., 610., 611., 612.,
      613., 614., 615., 616., 617., 618., 619., 620., 621., 622., 623., 624.,
      621., 622., 623., 624., 621., 622., 623., 624., 621., 622., 623., 624.,
      621., 622., 623., 624., 621., 622., 623., 624., 593., 594., 595., 596.,
      597., 598., 599., 600., 601., 602., 603., 604., 605., 606., 607., 608.,
      609., 610., 611., 612., 613., 614., 615., 616., 617., 618., 619., 620.,
      621., 622., 623., 624., 621., 622., 623., 624., 621., 622., 623., 624.,
      621., 622., 623., 624., 621., 622., 623., 624., 621., 622., 623., 624.,
      593., 594., 595., 596., 597., 598., 599., 600., 601., 602., 603., 604.,
      605., 606., 607., 608., 609., 610., 611., 612., 613., 614., 615., 616.,
      617., 618., 619., 620., 621., 622., 623., 624., 621., 622., 623., 624.,
      621., 622., 623., 624., 621., 622., 623., 624., 621., 622., 623., 624.,
      621., 622., 623., 624., 593., 594., 595., 596., 597., 598., 599., 600.,
      601., 602., 603., 604., 605., 606., 607., 608., 609., 610., 611., 612.,
      613., 614., 615., 616., 617., 618., 619., 620., 621., 622., 623., 624.,
      621., 622., 623., 624., 621., 622., 623., 624., 621., 622., 623., 624.,
      621., 622., 623., 624., 621., 622., 623., 624., 593., 594., 595., 596.,
      597., 598., 599., 600., 601., 602., 603., 604., 605., 606., 607., 608.,
      609., 610., 611., 612., 613., 614., 615., 616., 617., 618., 619., 620.,
      621., 622., 623., 624., 621., 622., 623., 624., 621., 622., 623., 624.,
      621., 622., 623., 624., 621., 622., 623., 624., 621., 622., 623., 624.};
  const std::array<int, 4> in_shape = {{1, 12, 13, 4}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, VALID1x12x13x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      561., 562., 563., 564., 565., 566., 567., 568., 569., 570., 571., 572.,
      613., 614., 615., 616., 617., 618., 619., 620., 621., 622., 623., 624.};
  const std::array<int, 4> in_shape = {{1, 12, 13, 4}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, SAME1x12x14x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      76.,  77.,  78.,  79.,  80.,  81.,  82.,  83.,  84.,  84.,  84.,  84.,
      84.,  84.,  90.,  91.,  92.,  93.,  94.,  95.,  96.,  97.,  98.,  98.,
      98.,  98.,  98.,  98.,  104., 105., 106., 107., 108., 109., 110., 111.,
      112., 112., 112., 112., 112., 112., 118., 119., 120., 121., 122., 123.,
      124., 125., 126., 126., 126., 126., 126., 126., 132., 133., 134., 135.,
      136., 137., 138., 139., 140., 140., 140., 140., 140., 140., 146., 147.,
      148., 149., 150., 151., 152., 153., 154., 154., 154., 154., 154., 154.,
      160., 161., 162., 163., 164., 165., 166., 167., 168., 168., 168., 168.,
      168., 168., 160., 161., 162., 163., 164., 165., 166., 167., 168., 168.,
      168., 168., 168., 168., 160., 161., 162., 163., 164., 165., 166., 167.,
      168., 168., 168., 168., 168., 168., 160., 161., 162., 163., 164., 165.,
      166., 167., 168., 168., 168., 168., 168., 168., 160., 161., 162., 163.,
      164., 165., 166., 167., 168., 168., 168., 168., 168., 168., 160., 161.,
      162., 163., 164., 165., 166., 167., 168., 168., 168., 168., 168., 168.};
  const std::array<int, 4> in_shape = {{1, 12, 14, 1}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, VALID1x12x14x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {151., 152., 153., 154.,
                                         165., 166., 167., 168.};
  const std::array<int, 4> in_shape = {{1, 12, 14, 1}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, SAME1x12x14x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      151., 152., 153., 154., 155., 156., 157., 158., 159., 160., 161., 162.,
      163., 164., 165., 166., 167., 168., 167., 168., 167., 168., 167., 168.,
      167., 168., 167., 168., 179., 180., 181., 182., 183., 184., 185., 186.,
      187., 188., 189., 190., 191., 192., 193., 194., 195., 196., 195., 196.,
      195., 196., 195., 196., 195., 196., 195., 196., 207., 208., 209., 210.,
      211., 212., 213., 214., 215., 216., 217., 218., 219., 220., 221., 222.,
      223., 224., 223., 224., 223., 224., 223., 224., 223., 224., 223., 224.,
      235., 236., 237., 238., 239., 240., 241., 242., 243., 244., 245., 246.,
      247., 248., 249., 250., 251., 252., 251., 252., 251., 252., 251., 252.,
      251., 252., 251., 252., 263., 264., 265., 266., 267., 268., 269., 270.,
      271., 272., 273., 274., 275., 276., 277., 278., 279., 280., 279., 280.,
      279., 280., 279., 280., 279., 280., 279., 280., 291., 292., 293., 294.,
      295., 296., 297., 298., 299., 300., 301., 302., 303., 304., 305., 306.,
      307., 308., 307., 308., 307., 308., 307., 308., 307., 308., 307., 308.,
      319., 320., 321., 322., 323., 324., 325., 326., 327., 328., 329., 330.,
      331., 332., 333., 334., 335., 336., 335., 336., 335., 336., 335., 336.,
      335., 336., 335., 336., 319., 320., 321., 322., 323., 324., 325., 326.,
      327., 328., 329., 330., 331., 332., 333., 334., 335., 336., 335., 336.,
      335., 336., 335., 336., 335., 336., 335., 336., 319., 320., 321., 322.,
      323., 324., 325., 326., 327., 328., 329., 330., 331., 332., 333., 334.,
      335., 336., 335., 336., 335., 336., 335., 336., 335., 336., 335., 336.,
      319., 320., 321., 322., 323., 324., 325., 326., 327., 328., 329., 330.,
      331., 332., 333., 334., 335., 336., 335., 336., 335., 336., 335., 336.,
      335., 336., 335., 336., 319., 320., 321., 322., 323., 324., 325., 326.,
      327., 328., 329., 330., 331., 332., 333., 334., 335., 336., 335., 336.,
      335., 336., 335., 336., 335., 336., 335., 336., 319., 320., 321., 322.,
      323., 324., 325., 326., 327., 328., 329., 330., 331., 332., 333., 334.,
      335., 336., 335., 336., 335., 336., 335., 336., 335., 336., 335., 336.};
  const std::array<int, 4> in_shape = {{1, 12, 14, 2}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, VALID1x12x14x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {301., 302., 303., 304., 305., 306.,
                                         307., 308., 329., 330., 331., 332.,
                                         333., 334., 335., 336.};
  const std::array<int, 4> in_shape = {{1, 12, 14, 2}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, SAME1x12x14x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      301., 302., 303., 304., 305., 306., 307., 308., 309., 310., 311., 312.,
      313., 314., 315., 316., 317., 318., 319., 320., 321., 322., 323., 324.,
      325., 326., 327., 328., 329., 330., 331., 332., 333., 334., 335., 336.,
      333., 334., 335., 336., 333., 334., 335., 336., 333., 334., 335., 336.,
      333., 334., 335., 336., 333., 334., 335., 336., 357., 358., 359., 360.,
      361., 362., 363., 364., 365., 366., 367., 368., 369., 370., 371., 372.,
      373., 374., 375., 376., 377., 378., 379., 380., 381., 382., 383., 384.,
      385., 386., 387., 388., 389., 390., 391., 392., 389., 390., 391., 392.,
      389., 390., 391., 392., 389., 390., 391., 392., 389., 390., 391., 392.,
      389., 390., 391., 392., 413., 414., 415., 416., 417., 418., 419., 420.,
      421., 422., 423., 424., 425., 426., 427., 428., 429., 430., 431., 432.,
      433., 434., 435., 436., 437., 438., 439., 440., 441., 442., 443., 444.,
      445., 446., 447., 448., 445., 446., 447., 448., 445., 446., 447., 448.,
      445., 446., 447., 448., 445., 446., 447., 448., 445., 446., 447., 448.,
      469., 470., 471., 472., 473., 474., 475., 476., 477., 478., 479., 480.,
      481., 482., 483., 484., 485., 486., 487., 488., 489., 490., 491., 492.,
      493., 494., 495., 496., 497., 498., 499., 500., 501., 502., 503., 504.,
      501., 502., 503., 504., 501., 502., 503., 504., 501., 502., 503., 504.,
      501., 502., 503., 504., 501., 502., 503., 504., 525., 526., 527., 528.,
      529., 530., 531., 532., 533., 534., 535., 536., 537., 538., 539., 540.,
      541., 542., 543., 544., 545., 546., 547., 548., 549., 550., 551., 552.,
      553., 554., 555., 556., 557., 558., 559., 560., 557., 558., 559., 560.,
      557., 558., 559., 560., 557., 558., 559., 560., 557., 558., 559., 560.,
      557., 558., 559., 560., 581., 582., 583., 584., 585., 586., 587., 588.,
      589., 590., 591., 592., 593., 594., 595., 596., 597., 598., 599., 600.,
      601., 602., 603., 604., 605., 606., 607., 608., 609., 610., 611., 612.,
      613., 614., 615., 616., 613., 614., 615., 616., 613., 614., 615., 616.,
      613., 614., 615., 616., 613., 614., 615., 616., 613., 614., 615., 616.,
      637., 638., 639., 640., 641., 642., 643., 644., 645., 646., 647., 648.,
      649., 650., 651., 652., 653., 654., 655., 656., 657., 658., 659., 660.,
      661., 662., 663., 664., 665., 666., 667., 668., 669., 670., 671., 672.,
      669., 670., 671., 672., 669., 670., 671., 672., 669., 670., 671., 672.,
      669., 670., 671., 672., 669., 670., 671., 672., 637., 638., 639., 640.,
      641., 642., 643., 644., 645., 646., 647., 648., 649., 650., 651., 652.,
      653., 654., 655., 656., 657., 658., 659., 660., 661., 662., 663., 664.,
      665., 666., 667., 668., 669., 670., 671., 672., 669., 670., 671., 672.,
      669., 670., 671., 672., 669., 670., 671., 672., 669., 670., 671., 672.,
      669., 670., 671., 672., 637., 638., 639., 640., 641., 642., 643., 644.,
      645., 646., 647., 648., 649., 650., 651., 652., 653., 654., 655., 656.,
      657., 658., 659., 660., 661., 662., 663., 664., 665., 666., 667., 668.,
      669., 670., 671., 672., 669., 670., 671., 672., 669., 670., 671., 672.,
      669., 670., 671., 672., 669., 670., 671., 672., 669., 670., 671., 672.,
      637., 638., 639., 640., 641., 642., 643., 644., 645., 646., 647., 648.,
      649., 650., 651., 652., 653., 654., 655., 656., 657., 658., 659., 660.,
      661., 662., 663., 664., 665., 666., 667., 668., 669., 670., 671., 672.,
      669., 670., 671., 672., 669., 670., 671., 672., 669., 670., 671., 672.,
      669., 670., 671., 672., 669., 670., 671., 672., 637., 638., 639., 640.,
      641., 642., 643., 644., 645., 646., 647., 648., 649., 650., 651., 652.,
      653., 654., 655., 656., 657., 658., 659., 660., 661., 662., 663., 664.,
      665., 666., 667., 668., 669., 670., 671., 672., 669., 670., 671., 672.,
      669., 670., 671., 672., 669., 670., 671., 672., 669., 670., 671., 672.,
      669., 670., 671., 672., 637., 638., 639., 640., 641., 642., 643., 644.,
      645., 646., 647., 648., 649., 650., 651., 652., 653., 654., 655., 656.,
      657., 658., 659., 660., 661., 662., 663., 664., 665., 666., 667., 668.,
      669., 670., 671., 672., 669., 670., 671., 672., 669., 670., 671., 672.,
      669., 670., 671., 672., 669., 670., 671., 672., 669., 670., 671., 672.};
  const std::array<int, 4> in_shape = {{1, 12, 14, 4}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, VALID1x12x14x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      601., 602., 603., 604., 605., 606., 607., 608., 609., 610., 611.,
      612., 613., 614., 615., 616., 657., 658., 659., 660., 661., 662.,
      663., 664., 665., 666., 667., 668., 669., 670., 671., 672.};
  const std::array<int, 4> in_shape = {{1, 12, 14, 4}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, SAME1x13x12x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      66.,  67.,  68.,  69.,  70.,  71.,  72.,  72.,  72.,  72.,  72.,  72.,
      78.,  79.,  80.,  81.,  82.,  83.,  84.,  84.,  84.,  84.,  84.,  84.,
      90.,  91.,  92.,  93.,  94.,  95.,  96.,  96.,  96.,  96.,  96.,  96.,
      102., 103., 104., 105., 106., 107., 108., 108., 108., 108., 108., 108.,
      114., 115., 116., 117., 118., 119., 120., 120., 120., 120., 120., 120.,
      126., 127., 128., 129., 130., 131., 132., 132., 132., 132., 132., 132.,
      138., 139., 140., 141., 142., 143., 144., 144., 144., 144., 144., 144.,
      150., 151., 152., 153., 154., 155., 156., 156., 156., 156., 156., 156.,
      150., 151., 152., 153., 154., 155., 156., 156., 156., 156., 156., 156.,
      150., 151., 152., 153., 154., 155., 156., 156., 156., 156., 156., 156.,
      150., 151., 152., 153., 154., 155., 156., 156., 156., 156., 156., 156.,
      150., 151., 152., 153., 154., 155., 156., 156., 156., 156., 156., 156.,
      150., 151., 152., 153., 154., 155., 156., 156., 156., 156., 156., 156.};
  const std::array<int, 4> in_shape = {{1, 13, 12, 1}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, VALID1x13x12x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {131., 132., 143., 144., 155., 156.};
  const std::array<int, 4> in_shape = {{1, 13, 12, 1}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, SAME1x13x12x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      131., 132., 133., 134., 135., 136., 137., 138., 139., 140., 141., 142.,
      143., 144., 143., 144., 143., 144., 143., 144., 143., 144., 143., 144.,
      155., 156., 157., 158., 159., 160., 161., 162., 163., 164., 165., 166.,
      167., 168., 167., 168., 167., 168., 167., 168., 167., 168., 167., 168.,
      179., 180., 181., 182., 183., 184., 185., 186., 187., 188., 189., 190.,
      191., 192., 191., 192., 191., 192., 191., 192., 191., 192., 191., 192.,
      203., 204., 205., 206., 207., 208., 209., 210., 211., 212., 213., 214.,
      215., 216., 215., 216., 215., 216., 215., 216., 215., 216., 215., 216.,
      227., 228., 229., 230., 231., 232., 233., 234., 235., 236., 237., 238.,
      239., 240., 239., 240., 239., 240., 239., 240., 239., 240., 239., 240.,
      251., 252., 253., 254., 255., 256., 257., 258., 259., 260., 261., 262.,
      263., 264., 263., 264., 263., 264., 263., 264., 263., 264., 263., 264.,
      275., 276., 277., 278., 279., 280., 281., 282., 283., 284., 285., 286.,
      287., 288., 287., 288., 287., 288., 287., 288., 287., 288., 287., 288.,
      299., 300., 301., 302., 303., 304., 305., 306., 307., 308., 309., 310.,
      311., 312., 311., 312., 311., 312., 311., 312., 311., 312., 311., 312.,
      299., 300., 301., 302., 303., 304., 305., 306., 307., 308., 309., 310.,
      311., 312., 311., 312., 311., 312., 311., 312., 311., 312., 311., 312.,
      299., 300., 301., 302., 303., 304., 305., 306., 307., 308., 309., 310.,
      311., 312., 311., 312., 311., 312., 311., 312., 311., 312., 311., 312.,
      299., 300., 301., 302., 303., 304., 305., 306., 307., 308., 309., 310.,
      311., 312., 311., 312., 311., 312., 311., 312., 311., 312., 311., 312.,
      299., 300., 301., 302., 303., 304., 305., 306., 307., 308., 309., 310.,
      311., 312., 311., 312., 311., 312., 311., 312., 311., 312., 311., 312.,
      299., 300., 301., 302., 303., 304., 305., 306., 307., 308., 309., 310.,
      311., 312., 311., 312., 311., 312., 311., 312., 311., 312., 311., 312.};
  const std::array<int, 4> in_shape = {{1, 13, 12, 2}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, VALID1x13x12x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {261., 262., 263., 264., 285., 286.,
                                         287., 288., 309., 310., 311., 312.};
  const std::array<int, 4> in_shape = {{1, 13, 12, 2}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, SAME1x13x12x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      261., 262., 263., 264., 265., 266., 267., 268., 269., 270., 271., 272.,
      273., 274., 275., 276., 277., 278., 279., 280., 281., 282., 283., 284.,
      285., 286., 287., 288., 285., 286., 287., 288., 285., 286., 287., 288.,
      285., 286., 287., 288., 285., 286., 287., 288., 285., 286., 287., 288.,
      309., 310., 311., 312., 313., 314., 315., 316., 317., 318., 319., 320.,
      321., 322., 323., 324., 325., 326., 327., 328., 329., 330., 331., 332.,
      333., 334., 335., 336., 333., 334., 335., 336., 333., 334., 335., 336.,
      333., 334., 335., 336., 333., 334., 335., 336., 333., 334., 335., 336.,
      357., 358., 359., 360., 361., 362., 363., 364., 365., 366., 367., 368.,
      369., 370., 371., 372., 373., 374., 375., 376., 377., 378., 379., 380.,
      381., 382., 383., 384., 381., 382., 383., 384., 381., 382., 383., 384.,
      381., 382., 383., 384., 381., 382., 383., 384., 381., 382., 383., 384.,
      405., 406., 407., 408., 409., 410., 411., 412., 413., 414., 415., 416.,
      417., 418., 419., 420., 421., 422., 423., 424., 425., 426., 427., 428.,
      429., 430., 431., 432., 429., 430., 431., 432., 429., 430., 431., 432.,
      429., 430., 431., 432., 429., 430., 431., 432., 429., 430., 431., 432.,
      453., 454., 455., 456., 457., 458., 459., 460., 461., 462., 463., 464.,
      465., 466., 467., 468., 469., 470., 471., 472., 473., 474., 475., 476.,
      477., 478., 479., 480., 477., 478., 479., 480., 477., 478., 479., 480.,
      477., 478., 479., 480., 477., 478., 479., 480., 477., 478., 479., 480.,
      501., 502., 503., 504., 505., 506., 507., 508., 509., 510., 511., 512.,
      513., 514., 515., 516., 517., 518., 519., 520., 521., 522., 523., 524.,
      525., 526., 527., 528., 525., 526., 527., 528., 525., 526., 527., 528.,
      525., 526., 527., 528., 525., 526., 527., 528., 525., 526., 527., 528.,
      549., 550., 551., 552., 553., 554., 555., 556., 557., 558., 559., 560.,
      561., 562., 563., 564., 565., 566., 567., 568., 569., 570., 571., 572.,
      573., 574., 575., 576., 573., 574., 575., 576., 573., 574., 575., 576.,
      573., 574., 575., 576., 573., 574., 575., 576., 573., 574., 575., 576.,
      597., 598., 599., 600., 601., 602., 603., 604., 605., 606., 607., 608.,
      609., 610., 611., 612., 613., 614., 615., 616., 617., 618., 619., 620.,
      621., 622., 623., 624., 621., 622., 623., 624., 621., 622., 623., 624.,
      621., 622., 623., 624., 621., 622., 623., 624., 621., 622., 623., 624.,
      597., 598., 599., 600., 601., 602., 603., 604., 605., 606., 607., 608.,
      609., 610., 611., 612., 613., 614., 615., 616., 617., 618., 619., 620.,
      621., 622., 623., 624., 621., 622., 623., 624., 621., 622., 623., 624.,
      621., 622., 623., 624., 621., 622., 623., 624., 621., 622., 623., 624.,
      597., 598., 599., 600., 601., 602., 603., 604., 605., 606., 607., 608.,
      609., 610., 611., 612., 613., 614., 615., 616., 617., 618., 619., 620.,
      621., 622., 623., 624., 621., 622., 623., 624., 621., 622., 623., 624.,
      621., 622., 623., 624., 621., 622., 623., 624., 621., 622., 623., 624.,
      597., 598., 599., 600., 601., 602., 603., 604., 605., 606., 607., 608.,
      609., 610., 611., 612., 613., 614., 615., 616., 617., 618., 619., 620.,
      621., 622., 623., 624., 621., 622., 623., 624., 621., 622., 623., 624.,
      621., 622., 623., 624., 621., 622., 623., 624., 621., 622., 623., 624.,
      597., 598., 599., 600., 601., 602., 603., 604., 605., 606., 607., 608.,
      609., 610., 611., 612., 613., 614., 615., 616., 617., 618., 619., 620.,
      621., 622., 623., 624., 621., 622., 623., 624., 621., 622., 623., 624.,
      621., 622., 623., 624., 621., 622., 623., 624., 621., 622., 623., 624.,
      597., 598., 599., 600., 601., 602., 603., 604., 605., 606., 607., 608.,
      609., 610., 611., 612., 613., 614., 615., 616., 617., 618., 619., 620.,
      621., 622., 623., 624., 621., 622., 623., 624., 621., 622., 623., 624.,
      621., 622., 623., 624., 621., 622., 623., 624., 621., 622., 623., 624.};
  const std::array<int, 4> in_shape = {{1, 13, 12, 4}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, VALID1x13x12x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      521., 522., 523., 524., 525., 526., 527., 528., 569., 570., 571., 572.,
      573., 574., 575., 576., 617., 618., 619., 620., 621., 622., 623., 624.};
  const std::array<int, 4> in_shape = {{1, 13, 12, 4}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, SAME1x13x13x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      71.,  72.,  73.,  74.,  75.,  76.,  77.,  78.,  78.,  78.,  78.,  78.,
      78.,  84.,  85.,  86.,  87.,  88.,  89.,  90.,  91.,  91.,  91.,  91.,
      91.,  91.,  97.,  98.,  99.,  100., 101., 102., 103., 104., 104., 104.,
      104., 104., 104., 110., 111., 112., 113., 114., 115., 116., 117., 117.,
      117., 117., 117., 117., 123., 124., 125., 126., 127., 128., 129., 130.,
      130., 130., 130., 130., 130., 136., 137., 138., 139., 140., 141., 142.,
      143., 143., 143., 143., 143., 143., 149., 150., 151., 152., 153., 154.,
      155., 156., 156., 156., 156., 156., 156., 162., 163., 164., 165., 166.,
      167., 168., 169., 169., 169., 169., 169., 169., 162., 163., 164., 165.,
      166., 167., 168., 169., 169., 169., 169., 169., 169., 162., 163., 164.,
      165., 166., 167., 168., 169., 169., 169., 169., 169., 169., 162., 163.,
      164., 165., 166., 167., 168., 169., 169., 169., 169., 169., 169., 162.,
      163., 164., 165., 166., 167., 168., 169., 169., 169., 169., 169., 169.,
      162., 163., 164., 165., 166., 167., 168., 169., 169., 169., 169., 169.,
      169.};
  const std::array<int, 4> in_shape = {{1, 13, 13, 1}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, VALID1x13x13x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {141., 142., 143., 154., 155.,
                                         156., 167., 168., 169.};
  const std::array<int, 4> in_shape = {{1, 13, 13, 1}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, SAME1x13x13x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      141., 142., 143., 144., 145., 146., 147., 148., 149., 150., 151., 152.,
      153., 154., 155., 156., 155., 156., 155., 156., 155., 156., 155., 156.,
      155., 156., 167., 168., 169., 170., 171., 172., 173., 174., 175., 176.,
      177., 178., 179., 180., 181., 182., 181., 182., 181., 182., 181., 182.,
      181., 182., 181., 182., 193., 194., 195., 196., 197., 198., 199., 200.,
      201., 202., 203., 204., 205., 206., 207., 208., 207., 208., 207., 208.,
      207., 208., 207., 208., 207., 208., 219., 220., 221., 222., 223., 224.,
      225., 226., 227., 228., 229., 230., 231., 232., 233., 234., 233., 234.,
      233., 234., 233., 234., 233., 234., 233., 234., 245., 246., 247., 248.,
      249., 250., 251., 252., 253., 254., 255., 256., 257., 258., 259., 260.,
      259., 260., 259., 260., 259., 260., 259., 260., 259., 260., 271., 272.,
      273., 274., 275., 276., 277., 278., 279., 280., 281., 282., 283., 284.,
      285., 286., 285., 286., 285., 286., 285., 286., 285., 286., 285., 286.,
      297., 298., 299., 300., 301., 302., 303., 304., 305., 306., 307., 308.,
      309., 310., 311., 312., 311., 312., 311., 312., 311., 312., 311., 312.,
      311., 312., 323., 324., 325., 326., 327., 328., 329., 330., 331., 332.,
      333., 334., 335., 336., 337., 338., 337., 338., 337., 338., 337., 338.,
      337., 338., 337., 338., 323., 324., 325., 326., 327., 328., 329., 330.,
      331., 332., 333., 334., 335., 336., 337., 338., 337., 338., 337., 338.,
      337., 338., 337., 338., 337., 338., 323., 324., 325., 326., 327., 328.,
      329., 330., 331., 332., 333., 334., 335., 336., 337., 338., 337., 338.,
      337., 338., 337., 338., 337., 338., 337., 338., 323., 324., 325., 326.,
      327., 328., 329., 330., 331., 332., 333., 334., 335., 336., 337., 338.,
      337., 338., 337., 338., 337., 338., 337., 338., 337., 338., 323., 324.,
      325., 326., 327., 328., 329., 330., 331., 332., 333., 334., 335., 336.,
      337., 338., 337., 338., 337., 338., 337., 338., 337., 338., 337., 338.,
      323., 324., 325., 326., 327., 328., 329., 330., 331., 332., 333., 334.,
      335., 336., 337., 338., 337., 338., 337., 338., 337., 338., 337., 338.,
      337., 338.};
  const std::array<int, 4> in_shape = {{1, 13, 13, 2}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, VALID1x13x13x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {281., 282., 283., 284., 285., 286.,
                                         307., 308., 309., 310., 311., 312.,
                                         333., 334., 335., 336., 337., 338.};
  const std::array<int, 4> in_shape = {{1, 13, 13, 2}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, SAME1x13x13x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      281., 282., 283., 284., 285., 286., 287., 288., 289., 290., 291., 292.,
      293., 294., 295., 296., 297., 298., 299., 300., 301., 302., 303., 304.,
      305., 306., 307., 308., 309., 310., 311., 312., 309., 310., 311., 312.,
      309., 310., 311., 312., 309., 310., 311., 312., 309., 310., 311., 312.,
      309., 310., 311., 312., 333., 334., 335., 336., 337., 338., 339., 340.,
      341., 342., 343., 344., 345., 346., 347., 348., 349., 350., 351., 352.,
      353., 354., 355., 356., 357., 358., 359., 360., 361., 362., 363., 364.,
      361., 362., 363., 364., 361., 362., 363., 364., 361., 362., 363., 364.,
      361., 362., 363., 364., 361., 362., 363., 364., 385., 386., 387., 388.,
      389., 390., 391., 392., 393., 394., 395., 396., 397., 398., 399., 400.,
      401., 402., 403., 404., 405., 406., 407., 408., 409., 410., 411., 412.,
      413., 414., 415., 416., 413., 414., 415., 416., 413., 414., 415., 416.,
      413., 414., 415., 416., 413., 414., 415., 416., 413., 414., 415., 416.,
      437., 438., 439., 440., 441., 442., 443., 444., 445., 446., 447., 448.,
      449., 450., 451., 452., 453., 454., 455., 456., 457., 458., 459., 460.,
      461., 462., 463., 464., 465., 466., 467., 468., 465., 466., 467., 468.,
      465., 466., 467., 468., 465., 466., 467., 468., 465., 466., 467., 468.,
      465., 466., 467., 468., 489., 490., 491., 492., 493., 494., 495., 496.,
      497., 498., 499., 500., 501., 502., 503., 504., 505., 506., 507., 508.,
      509., 510., 511., 512., 513., 514., 515., 516., 517., 518., 519., 520.,
      517., 518., 519., 520., 517., 518., 519., 520., 517., 518., 519., 520.,
      517., 518., 519., 520., 517., 518., 519., 520., 541., 542., 543., 544.,
      545., 546., 547., 548., 549., 550., 551., 552., 553., 554., 555., 556.,
      557., 558., 559., 560., 561., 562., 563., 564., 565., 566., 567., 568.,
      569., 570., 571., 572., 569., 570., 571., 572., 569., 570., 571., 572.,
      569., 570., 571., 572., 569., 570., 571., 572., 569., 570., 571., 572.,
      593., 594., 595., 596., 597., 598., 599., 600., 601., 602., 603., 604.,
      605., 606., 607., 608., 609., 610., 611., 612., 613., 614., 615., 616.,
      617., 618., 619., 620., 621., 622., 623., 624., 621., 622., 623., 624.,
      621., 622., 623., 624., 621., 622., 623., 624., 621., 622., 623., 624.,
      621., 622., 623., 624., 645., 646., 647., 648., 649., 650., 651., 652.,
      653., 654., 655., 656., 657., 658., 659., 660., 661., 662., 663., 664.,
      665., 666., 667., 668., 669., 670., 671., 672., 673., 674., 675., 676.,
      673., 674., 675., 676., 673., 674., 675., 676., 673., 674., 675., 676.,
      673., 674., 675., 676., 673., 674., 675., 676., 645., 646., 647., 648.,
      649., 650., 651., 652., 653., 654., 655., 656., 657., 658., 659., 660.,
      661., 662., 663., 664., 665., 666., 667., 668., 669., 670., 671., 672.,
      673., 674., 675., 676., 673., 674., 675., 676., 673., 674., 675., 676.,
      673., 674., 675., 676., 673., 674., 675., 676., 673., 674., 675., 676.,
      645., 646., 647., 648., 649., 650., 651., 652., 653., 654., 655., 656.,
      657., 658., 659., 660., 661., 662., 663., 664., 665., 666., 667., 668.,
      669., 670., 671., 672., 673., 674., 675., 676., 673., 674., 675., 676.,
      673., 674., 675., 676., 673., 674., 675., 676., 673., 674., 675., 676.,
      673., 674., 675., 676., 645., 646., 647., 648., 649., 650., 651., 652.,
      653., 654., 655., 656., 657., 658., 659., 660., 661., 662., 663., 664.,
      665., 666., 667., 668., 669., 670., 671., 672., 673., 674., 675., 676.,
      673., 674., 675., 676., 673., 674., 675., 676., 673., 674., 675., 676.,
      673., 674., 675., 676., 673., 674., 675., 676., 645., 646., 647., 648.,
      649., 650., 651., 652., 653., 654., 655., 656., 657., 658., 659., 660.,
      661., 662., 663., 664., 665., 666., 667., 668., 669., 670., 671., 672.,
      673., 674., 675., 676., 673., 674., 675., 676., 673., 674., 675., 676.,
      673., 674., 675., 676., 673., 674., 675., 676., 673., 674., 675., 676.,
      645., 646., 647., 648., 649., 650., 651., 652., 653., 654., 655., 656.,
      657., 658., 659., 660., 661., 662., 663., 664., 665., 666., 667., 668.,
      669., 670., 671., 672., 673., 674., 675., 676., 673., 674., 675., 676.,
      673., 674., 675., 676., 673., 674., 675., 676., 673., 674., 675., 676.,
      673., 674., 675., 676.};
  const std::array<int, 4> in_shape = {{1, 13, 13, 4}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, VALID1x13x13x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      561., 562., 563., 564., 565., 566., 567., 568., 569., 570., 571., 572.,
      613., 614., 615., 616., 617., 618., 619., 620., 621., 622., 623., 624.,
      665., 666., 667., 668., 669., 670., 671., 672., 673., 674., 675., 676.};
  const std::array<int, 4> in_shape = {{1, 13, 13, 4}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, SAME1x13x14x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      76.,  77.,  78.,  79.,  80.,  81.,  82.,  83.,  84.,  84.,  84.,  84.,
      84.,  84.,  90.,  91.,  92.,  93.,  94.,  95.,  96.,  97.,  98.,  98.,
      98.,  98.,  98.,  98.,  104., 105., 106., 107., 108., 109., 110., 111.,
      112., 112., 112., 112., 112., 112., 118., 119., 120., 121., 122., 123.,
      124., 125., 126., 126., 126., 126., 126., 126., 132., 133., 134., 135.,
      136., 137., 138., 139., 140., 140., 140., 140., 140., 140., 146., 147.,
      148., 149., 150., 151., 152., 153., 154., 154., 154., 154., 154., 154.,
      160., 161., 162., 163., 164., 165., 166., 167., 168., 168., 168., 168.,
      168., 168., 174., 175., 176., 177., 178., 179., 180., 181., 182., 182.,
      182., 182., 182., 182., 174., 175., 176., 177., 178., 179., 180., 181.,
      182., 182., 182., 182., 182., 182., 174., 175., 176., 177., 178., 179.,
      180., 181., 182., 182., 182., 182., 182., 182., 174., 175., 176., 177.,
      178., 179., 180., 181., 182., 182., 182., 182., 182., 182., 174., 175.,
      176., 177., 178., 179., 180., 181., 182., 182., 182., 182., 182., 182.,
      174., 175., 176., 177., 178., 179., 180., 181., 182., 182., 182., 182.,
      182., 182.};
  const std::array<int, 4> in_shape = {{1, 13, 14, 1}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, VALID1x13x14x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {151., 152., 153., 154., 165., 166.,
                                         167., 168., 179., 180., 181., 182.};
  const std::array<int, 4> in_shape = {{1, 13, 14, 1}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, SAME1x13x14x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      151., 152., 153., 154., 155., 156., 157., 158., 159., 160., 161., 162.,
      163., 164., 165., 166., 167., 168., 167., 168., 167., 168., 167., 168.,
      167., 168., 167., 168., 179., 180., 181., 182., 183., 184., 185., 186.,
      187., 188., 189., 190., 191., 192., 193., 194., 195., 196., 195., 196.,
      195., 196., 195., 196., 195., 196., 195., 196., 207., 208., 209., 210.,
      211., 212., 213., 214., 215., 216., 217., 218., 219., 220., 221., 222.,
      223., 224., 223., 224., 223., 224., 223., 224., 223., 224., 223., 224.,
      235., 236., 237., 238., 239., 240., 241., 242., 243., 244., 245., 246.,
      247., 248., 249., 250., 251., 252., 251., 252., 251., 252., 251., 252.,
      251., 252., 251., 252., 263., 264., 265., 266., 267., 268., 269., 270.,
      271., 272., 273., 274., 275., 276., 277., 278., 279., 280., 279., 280.,
      279., 280., 279., 280., 279., 280., 279., 280., 291., 292., 293., 294.,
      295., 296., 297., 298., 299., 300., 301., 302., 303., 304., 305., 306.,
      307., 308., 307., 308., 307., 308., 307., 308., 307., 308., 307., 308.,
      319., 320., 321., 322., 323., 324., 325., 326., 327., 328., 329., 330.,
      331., 332., 333., 334., 335., 336., 335., 336., 335., 336., 335., 336.,
      335., 336., 335., 336., 347., 348., 349., 350., 351., 352., 353., 354.,
      355., 356., 357., 358., 359., 360., 361., 362., 363., 364., 363., 364.,
      363., 364., 363., 364., 363., 364., 363., 364., 347., 348., 349., 350.,
      351., 352., 353., 354., 355., 356., 357., 358., 359., 360., 361., 362.,
      363., 364., 363., 364., 363., 364., 363., 364., 363., 364., 363., 364.,
      347., 348., 349., 350., 351., 352., 353., 354., 355., 356., 357., 358.,
      359., 360., 361., 362., 363., 364., 363., 364., 363., 364., 363., 364.,
      363., 364., 363., 364., 347., 348., 349., 350., 351., 352., 353., 354.,
      355., 356., 357., 358., 359., 360., 361., 362., 363., 364., 363., 364.,
      363., 364., 363., 364., 363., 364., 363., 364., 347., 348., 349., 350.,
      351., 352., 353., 354., 355., 356., 357., 358., 359., 360., 361., 362.,
      363., 364., 363., 364., 363., 364., 363., 364., 363., 364., 363., 364.,
      347., 348., 349., 350., 351., 352., 353., 354., 355., 356., 357., 358.,
      359., 360., 361., 362., 363., 364., 363., 364., 363., 364., 363., 364.,
      363., 364., 363., 364.};
  const std::array<int, 4> in_shape = {{1, 13, 14, 2}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, VALID1x13x14x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      301., 302., 303., 304., 305., 306., 307., 308., 329., 330., 331., 332.,
      333., 334., 335., 336., 357., 358., 359., 360., 361., 362., 363., 364.};
  const std::array<int, 4> in_shape = {{1, 13, 14, 2}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, SAME1x13x14x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      301., 302., 303., 304., 305., 306., 307., 308., 309., 310., 311., 312.,
      313., 314., 315., 316., 317., 318., 319., 320., 321., 322., 323., 324.,
      325., 326., 327., 328., 329., 330., 331., 332., 333., 334., 335., 336.,
      333., 334., 335., 336., 333., 334., 335., 336., 333., 334., 335., 336.,
      333., 334., 335., 336., 333., 334., 335., 336., 357., 358., 359., 360.,
      361., 362., 363., 364., 365., 366., 367., 368., 369., 370., 371., 372.,
      373., 374., 375., 376., 377., 378., 379., 380., 381., 382., 383., 384.,
      385., 386., 387., 388., 389., 390., 391., 392., 389., 390., 391., 392.,
      389., 390., 391., 392., 389., 390., 391., 392., 389., 390., 391., 392.,
      389., 390., 391., 392., 413., 414., 415., 416., 417., 418., 419., 420.,
      421., 422., 423., 424., 425., 426., 427., 428., 429., 430., 431., 432.,
      433., 434., 435., 436., 437., 438., 439., 440., 441., 442., 443., 444.,
      445., 446., 447., 448., 445., 446., 447., 448., 445., 446., 447., 448.,
      445., 446., 447., 448., 445., 446., 447., 448., 445., 446., 447., 448.,
      469., 470., 471., 472., 473., 474., 475., 476., 477., 478., 479., 480.,
      481., 482., 483., 484., 485., 486., 487., 488., 489., 490., 491., 492.,
      493., 494., 495., 496., 497., 498., 499., 500., 501., 502., 503., 504.,
      501., 502., 503., 504., 501., 502., 503., 504., 501., 502., 503., 504.,
      501., 502., 503., 504., 501., 502., 503., 504., 525., 526., 527., 528.,
      529., 530., 531., 532., 533., 534., 535., 536., 537., 538., 539., 540.,
      541., 542., 543., 544., 545., 546., 547., 548., 549., 550., 551., 552.,
      553., 554., 555., 556., 557., 558., 559., 560., 557., 558., 559., 560.,
      557., 558., 559., 560., 557., 558., 559., 560., 557., 558., 559., 560.,
      557., 558., 559., 560., 581., 582., 583., 584., 585., 586., 587., 588.,
      589., 590., 591., 592., 593., 594., 595., 596., 597., 598., 599., 600.,
      601., 602., 603., 604., 605., 606., 607., 608., 609., 610., 611., 612.,
      613., 614., 615., 616., 613., 614., 615., 616., 613., 614., 615., 616.,
      613., 614., 615., 616., 613., 614., 615., 616., 613., 614., 615., 616.,
      637., 638., 639., 640., 641., 642., 643., 644., 645., 646., 647., 648.,
      649., 650., 651., 652., 653., 654., 655., 656., 657., 658., 659., 660.,
      661., 662., 663., 664., 665., 666., 667., 668., 669., 670., 671., 672.,
      669., 670., 671., 672., 669., 670., 671., 672., 669., 670., 671., 672.,
      669., 670., 671., 672., 669., 670., 671., 672., 693., 694., 695., 696.,
      697., 698., 699., 700., 701., 702., 703., 704., 705., 706., 707., 708.,
      709., 710., 711., 712., 713., 714., 715., 716., 717., 718., 719., 720.,
      721., 722., 723., 724., 725., 726., 727., 728., 725., 726., 727., 728.,
      725., 726., 727., 728., 725., 726., 727., 728., 725., 726., 727., 728.,
      725., 726., 727., 728., 693., 694., 695., 696., 697., 698., 699., 700.,
      701., 702., 703., 704., 705., 706., 707., 708., 709., 710., 711., 712.,
      713., 714., 715., 716., 717., 718., 719., 720., 721., 722., 723., 724.,
      725., 726., 727., 728., 725., 726., 727., 728., 725., 726., 727., 728.,
      725., 726., 727., 728., 725., 726., 727., 728., 725., 726., 727., 728.,
      693., 694., 695., 696., 697., 698., 699., 700., 701., 702., 703., 704.,
      705., 706., 707., 708., 709., 710., 711., 712., 713., 714., 715., 716.,
      717., 718., 719., 720., 721., 722., 723., 724., 725., 726., 727., 728.,
      725., 726., 727., 728., 725., 726., 727., 728., 725., 726., 727., 728.,
      725., 726., 727., 728., 725., 726., 727., 728., 693., 694., 695., 696.,
      697., 698., 699., 700., 701., 702., 703., 704., 705., 706., 707., 708.,
      709., 710., 711., 712., 713., 714., 715., 716., 717., 718., 719., 720.,
      721., 722., 723., 724., 725., 726., 727., 728., 725., 726., 727., 728.,
      725., 726., 727., 728., 725., 726., 727., 728., 725., 726., 727., 728.,
      725., 726., 727., 728., 693., 694., 695., 696., 697., 698., 699., 700.,
      701., 702., 703., 704., 705., 706., 707., 708., 709., 710., 711., 712.,
      713., 714., 715., 716., 717., 718., 719., 720., 721., 722., 723., 724.,
      725., 726., 727., 728., 725., 726., 727., 728., 725., 726., 727., 728.,
      725., 726., 727., 728., 725., 726., 727., 728., 725., 726., 727., 728.,
      693., 694., 695., 696., 697., 698., 699., 700., 701., 702., 703., 704.,
      705., 706., 707., 708., 709., 710., 711., 712., 713., 714., 715., 716.,
      717., 718., 719., 720., 721., 722., 723., 724., 725., 726., 727., 728.,
      725., 726., 727., 728., 725., 726., 727., 728., 725., 726., 727., 728.,
      725., 726., 727., 728., 725., 726., 727., 728.};
  const std::array<int, 4> in_shape = {{1, 13, 14, 4}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, VALID1x13x14x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      601., 602., 603., 604., 605., 606., 607., 608., 609., 610., 611., 612.,
      613., 614., 615., 616., 657., 658., 659., 660., 661., 662., 663., 664.,
      665., 666., 667., 668., 669., 670., 671., 672., 713., 714., 715., 716.,
      717., 718., 719., 720., 721., 722., 723., 724., 725., 726., 727., 728.};
  const std::array<int, 4> in_shape = {{1, 13, 14, 4}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, SAME1x14x12x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      66.,  67.,  68.,  69.,  70.,  71.,  72.,  72.,  72.,  72.,  72.,  72.,
      78.,  79.,  80.,  81.,  82.,  83.,  84.,  84.,  84.,  84.,  84.,  84.,
      90.,  91.,  92.,  93.,  94.,  95.,  96.,  96.,  96.,  96.,  96.,  96.,
      102., 103., 104., 105., 106., 107., 108., 108., 108., 108., 108., 108.,
      114., 115., 116., 117., 118., 119., 120., 120., 120., 120., 120., 120.,
      126., 127., 128., 129., 130., 131., 132., 132., 132., 132., 132., 132.,
      138., 139., 140., 141., 142., 143., 144., 144., 144., 144., 144., 144.,
      150., 151., 152., 153., 154., 155., 156., 156., 156., 156., 156., 156.,
      162., 163., 164., 165., 166., 167., 168., 168., 168., 168., 168., 168.,
      162., 163., 164., 165., 166., 167., 168., 168., 168., 168., 168., 168.,
      162., 163., 164., 165., 166., 167., 168., 168., 168., 168., 168., 168.,
      162., 163., 164., 165., 166., 167., 168., 168., 168., 168., 168., 168.,
      162., 163., 164., 165., 166., 167., 168., 168., 168., 168., 168., 168.,
      162., 163., 164., 165., 166., 167., 168., 168., 168., 168., 168., 168.};
  const std::array<int, 4> in_shape = {{1, 14, 12, 1}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, VALID1x14x12x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {131., 132., 143., 144.,
                                         155., 156., 167., 168.};
  const std::array<int, 4> in_shape = {{1, 14, 12, 1}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, SAME1x14x12x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      131., 132., 133., 134., 135., 136., 137., 138., 139., 140., 141., 142.,
      143., 144., 143., 144., 143., 144., 143., 144., 143., 144., 143., 144.,
      155., 156., 157., 158., 159., 160., 161., 162., 163., 164., 165., 166.,
      167., 168., 167., 168., 167., 168., 167., 168., 167., 168., 167., 168.,
      179., 180., 181., 182., 183., 184., 185., 186., 187., 188., 189., 190.,
      191., 192., 191., 192., 191., 192., 191., 192., 191., 192., 191., 192.,
      203., 204., 205., 206., 207., 208., 209., 210., 211., 212., 213., 214.,
      215., 216., 215., 216., 215., 216., 215., 216., 215., 216., 215., 216.,
      227., 228., 229., 230., 231., 232., 233., 234., 235., 236., 237., 238.,
      239., 240., 239., 240., 239., 240., 239., 240., 239., 240., 239., 240.,
      251., 252., 253., 254., 255., 256., 257., 258., 259., 260., 261., 262.,
      263., 264., 263., 264., 263., 264., 263., 264., 263., 264., 263., 264.,
      275., 276., 277., 278., 279., 280., 281., 282., 283., 284., 285., 286.,
      287., 288., 287., 288., 287., 288., 287., 288., 287., 288., 287., 288.,
      299., 300., 301., 302., 303., 304., 305., 306., 307., 308., 309., 310.,
      311., 312., 311., 312., 311., 312., 311., 312., 311., 312., 311., 312.,
      323., 324., 325., 326., 327., 328., 329., 330., 331., 332., 333., 334.,
      335., 336., 335., 336., 335., 336., 335., 336., 335., 336., 335., 336.,
      323., 324., 325., 326., 327., 328., 329., 330., 331., 332., 333., 334.,
      335., 336., 335., 336., 335., 336., 335., 336., 335., 336., 335., 336.,
      323., 324., 325., 326., 327., 328., 329., 330., 331., 332., 333., 334.,
      335., 336., 335., 336., 335., 336., 335., 336., 335., 336., 335., 336.,
      323., 324., 325., 326., 327., 328., 329., 330., 331., 332., 333., 334.,
      335., 336., 335., 336., 335., 336., 335., 336., 335., 336., 335., 336.,
      323., 324., 325., 326., 327., 328., 329., 330., 331., 332., 333., 334.,
      335., 336., 335., 336., 335., 336., 335., 336., 335., 336., 335., 336.,
      323., 324., 325., 326., 327., 328., 329., 330., 331., 332., 333., 334.,
      335., 336., 335., 336., 335., 336., 335., 336., 335., 336., 335., 336.};
  const std::array<int, 4> in_shape = {{1, 14, 12, 2}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, VALID1x14x12x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {261., 262., 263., 264., 285., 286.,
                                         287., 288., 309., 310., 311., 312.,
                                         333., 334., 335., 336.};
  const std::array<int, 4> in_shape = {{1, 14, 12, 2}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, SAME1x14x12x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      261., 262., 263., 264., 265., 266., 267., 268., 269., 270., 271., 272.,
      273., 274., 275., 276., 277., 278., 279., 280., 281., 282., 283., 284.,
      285., 286., 287., 288., 285., 286., 287., 288., 285., 286., 287., 288.,
      285., 286., 287., 288., 285., 286., 287., 288., 285., 286., 287., 288.,
      309., 310., 311., 312., 313., 314., 315., 316., 317., 318., 319., 320.,
      321., 322., 323., 324., 325., 326., 327., 328., 329., 330., 331., 332.,
      333., 334., 335., 336., 333., 334., 335., 336., 333., 334., 335., 336.,
      333., 334., 335., 336., 333., 334., 335., 336., 333., 334., 335., 336.,
      357., 358., 359., 360., 361., 362., 363., 364., 365., 366., 367., 368.,
      369., 370., 371., 372., 373., 374., 375., 376., 377., 378., 379., 380.,
      381., 382., 383., 384., 381., 382., 383., 384., 381., 382., 383., 384.,
      381., 382., 383., 384., 381., 382., 383., 384., 381., 382., 383., 384.,
      405., 406., 407., 408., 409., 410., 411., 412., 413., 414., 415., 416.,
      417., 418., 419., 420., 421., 422., 423., 424., 425., 426., 427., 428.,
      429., 430., 431., 432., 429., 430., 431., 432., 429., 430., 431., 432.,
      429., 430., 431., 432., 429., 430., 431., 432., 429., 430., 431., 432.,
      453., 454., 455., 456., 457., 458., 459., 460., 461., 462., 463., 464.,
      465., 466., 467., 468., 469., 470., 471., 472., 473., 474., 475., 476.,
      477., 478., 479., 480., 477., 478., 479., 480., 477., 478., 479., 480.,
      477., 478., 479., 480., 477., 478., 479., 480., 477., 478., 479., 480.,
      501., 502., 503., 504., 505., 506., 507., 508., 509., 510., 511., 512.,
      513., 514., 515., 516., 517., 518., 519., 520., 521., 522., 523., 524.,
      525., 526., 527., 528., 525., 526., 527., 528., 525., 526., 527., 528.,
      525., 526., 527., 528., 525., 526., 527., 528., 525., 526., 527., 528.,
      549., 550., 551., 552., 553., 554., 555., 556., 557., 558., 559., 560.,
      561., 562., 563., 564., 565., 566., 567., 568., 569., 570., 571., 572.,
      573., 574., 575., 576., 573., 574., 575., 576., 573., 574., 575., 576.,
      573., 574., 575., 576., 573., 574., 575., 576., 573., 574., 575., 576.,
      597., 598., 599., 600., 601., 602., 603., 604., 605., 606., 607., 608.,
      609., 610., 611., 612., 613., 614., 615., 616., 617., 618., 619., 620.,
      621., 622., 623., 624., 621., 622., 623., 624., 621., 622., 623., 624.,
      621., 622., 623., 624., 621., 622., 623., 624., 621., 622., 623., 624.,
      645., 646., 647., 648., 649., 650., 651., 652., 653., 654., 655., 656.,
      657., 658., 659., 660., 661., 662., 663., 664., 665., 666., 667., 668.,
      669., 670., 671., 672., 669., 670., 671., 672., 669., 670., 671., 672.,
      669., 670., 671., 672., 669., 670., 671., 672., 669., 670., 671., 672.,
      645., 646., 647., 648., 649., 650., 651., 652., 653., 654., 655., 656.,
      657., 658., 659., 660., 661., 662., 663., 664., 665., 666., 667., 668.,
      669., 670., 671., 672., 669., 670., 671., 672., 669., 670., 671., 672.,
      669., 670., 671., 672., 669., 670., 671., 672., 669., 670., 671., 672.,
      645., 646., 647., 648., 649., 650., 651., 652., 653., 654., 655., 656.,
      657., 658., 659., 660., 661., 662., 663., 664., 665., 666., 667., 668.,
      669., 670., 671., 672., 669., 670., 671., 672., 669., 670., 671., 672.,
      669., 670., 671., 672., 669., 670., 671., 672., 669., 670., 671., 672.,
      645., 646., 647., 648., 649., 650., 651., 652., 653., 654., 655., 656.,
      657., 658., 659., 660., 661., 662., 663., 664., 665., 666., 667., 668.,
      669., 670., 671., 672., 669., 670., 671., 672., 669., 670., 671., 672.,
      669., 670., 671., 672., 669., 670., 671., 672., 669., 670., 671., 672.,
      645., 646., 647., 648., 649., 650., 651., 652., 653., 654., 655., 656.,
      657., 658., 659., 660., 661., 662., 663., 664., 665., 666., 667., 668.,
      669., 670., 671., 672., 669., 670., 671., 672., 669., 670., 671., 672.,
      669., 670., 671., 672., 669., 670., 671., 672., 669., 670., 671., 672.,
      645., 646., 647., 648., 649., 650., 651., 652., 653., 654., 655., 656.,
      657., 658., 659., 660., 661., 662., 663., 664., 665., 666., 667., 668.,
      669., 670., 671., 672., 669., 670., 671., 672., 669., 670., 671., 672.,
      669., 670., 671., 672., 669., 670., 671., 672., 669., 670., 671., 672.};
  const std::array<int, 4> in_shape = {{1, 14, 12, 4}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, VALID1x14x12x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      521., 522., 523., 524., 525., 526., 527., 528., 569., 570., 571.,
      572., 573., 574., 575., 576., 617., 618., 619., 620., 621., 622.,
      623., 624., 665., 666., 667., 668., 669., 670., 671., 672.};
  const std::array<int, 4> in_shape = {{1, 14, 12, 4}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, SAME1x14x13x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      71.,  72.,  73.,  74.,  75.,  76.,  77.,  78.,  78.,  78.,  78.,  78.,
      78.,  84.,  85.,  86.,  87.,  88.,  89.,  90.,  91.,  91.,  91.,  91.,
      91.,  91.,  97.,  98.,  99.,  100., 101., 102., 103., 104., 104., 104.,
      104., 104., 104., 110., 111., 112., 113., 114., 115., 116., 117., 117.,
      117., 117., 117., 117., 123., 124., 125., 126., 127., 128., 129., 130.,
      130., 130., 130., 130., 130., 136., 137., 138., 139., 140., 141., 142.,
      143., 143., 143., 143., 143., 143., 149., 150., 151., 152., 153., 154.,
      155., 156., 156., 156., 156., 156., 156., 162., 163., 164., 165., 166.,
      167., 168., 169., 169., 169., 169., 169., 169., 175., 176., 177., 178.,
      179., 180., 181., 182., 182., 182., 182., 182., 182., 175., 176., 177.,
      178., 179., 180., 181., 182., 182., 182., 182., 182., 182., 175., 176.,
      177., 178., 179., 180., 181., 182., 182., 182., 182., 182., 182., 175.,
      176., 177., 178., 179., 180., 181., 182., 182., 182., 182., 182., 182.,
      175., 176., 177., 178., 179., 180., 181., 182., 182., 182., 182., 182.,
      182., 175., 176., 177., 178., 179., 180., 181., 182., 182., 182., 182.,
      182., 182.};
  const std::array<int, 4> in_shape = {{1, 14, 13, 1}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, VALID1x14x13x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {141., 142., 143., 154., 155., 156.,
                                         167., 168., 169., 180., 181., 182.};
  const std::array<int, 4> in_shape = {{1, 14, 13, 1}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, SAME1x14x13x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      141., 142., 143., 144., 145., 146., 147., 148., 149., 150., 151., 152.,
      153., 154., 155., 156., 155., 156., 155., 156., 155., 156., 155., 156.,
      155., 156., 167., 168., 169., 170., 171., 172., 173., 174., 175., 176.,
      177., 178., 179., 180., 181., 182., 181., 182., 181., 182., 181., 182.,
      181., 182., 181., 182., 193., 194., 195., 196., 197., 198., 199., 200.,
      201., 202., 203., 204., 205., 206., 207., 208., 207., 208., 207., 208.,
      207., 208., 207., 208., 207., 208., 219., 220., 221., 222., 223., 224.,
      225., 226., 227., 228., 229., 230., 231., 232., 233., 234., 233., 234.,
      233., 234., 233., 234., 233., 234., 233., 234., 245., 246., 247., 248.,
      249., 250., 251., 252., 253., 254., 255., 256., 257., 258., 259., 260.,
      259., 260., 259., 260., 259., 260., 259., 260., 259., 260., 271., 272.,
      273., 274., 275., 276., 277., 278., 279., 280., 281., 282., 283., 284.,
      285., 286., 285., 286., 285., 286., 285., 286., 285., 286., 285., 286.,
      297., 298., 299., 300., 301., 302., 303., 304., 305., 306., 307., 308.,
      309., 310., 311., 312., 311., 312., 311., 312., 311., 312., 311., 312.,
      311., 312., 323., 324., 325., 326., 327., 328., 329., 330., 331., 332.,
      333., 334., 335., 336., 337., 338., 337., 338., 337., 338., 337., 338.,
      337., 338., 337., 338., 349., 350., 351., 352., 353., 354., 355., 356.,
      357., 358., 359., 360., 361., 362., 363., 364., 363., 364., 363., 364.,
      363., 364., 363., 364., 363., 364., 349., 350., 351., 352., 353., 354.,
      355., 356., 357., 358., 359., 360., 361., 362., 363., 364., 363., 364.,
      363., 364., 363., 364., 363., 364., 363., 364., 349., 350., 351., 352.,
      353., 354., 355., 356., 357., 358., 359., 360., 361., 362., 363., 364.,
      363., 364., 363., 364., 363., 364., 363., 364., 363., 364., 349., 350.,
      351., 352., 353., 354., 355., 356., 357., 358., 359., 360., 361., 362.,
      363., 364., 363., 364., 363., 364., 363., 364., 363., 364., 363., 364.,
      349., 350., 351., 352., 353., 354., 355., 356., 357., 358., 359., 360.,
      361., 362., 363., 364., 363., 364., 363., 364., 363., 364., 363., 364.,
      363., 364., 349., 350., 351., 352., 353., 354., 355., 356., 357., 358.,
      359., 360., 361., 362., 363., 364., 363., 364., 363., 364., 363., 364.,
      363., 364., 363., 364.};
  const std::array<int, 4> in_shape = {{1, 14, 13, 2}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, VALID1x14x13x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      281., 282., 283., 284., 285., 286., 307., 308., 309., 310., 311., 312.,
      333., 334., 335., 336., 337., 338., 359., 360., 361., 362., 363., 364.};
  const std::array<int, 4> in_shape = {{1, 14, 13, 2}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, SAME1x14x13x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      281., 282., 283., 284., 285., 286., 287., 288., 289., 290., 291., 292.,
      293., 294., 295., 296., 297., 298., 299., 300., 301., 302., 303., 304.,
      305., 306., 307., 308., 309., 310., 311., 312., 309., 310., 311., 312.,
      309., 310., 311., 312., 309., 310., 311., 312., 309., 310., 311., 312.,
      309., 310., 311., 312., 333., 334., 335., 336., 337., 338., 339., 340.,
      341., 342., 343., 344., 345., 346., 347., 348., 349., 350., 351., 352.,
      353., 354., 355., 356., 357., 358., 359., 360., 361., 362., 363., 364.,
      361., 362., 363., 364., 361., 362., 363., 364., 361., 362., 363., 364.,
      361., 362., 363., 364., 361., 362., 363., 364., 385., 386., 387., 388.,
      389., 390., 391., 392., 393., 394., 395., 396., 397., 398., 399., 400.,
      401., 402., 403., 404., 405., 406., 407., 408., 409., 410., 411., 412.,
      413., 414., 415., 416., 413., 414., 415., 416., 413., 414., 415., 416.,
      413., 414., 415., 416., 413., 414., 415., 416., 413., 414., 415., 416.,
      437., 438., 439., 440., 441., 442., 443., 444., 445., 446., 447., 448.,
      449., 450., 451., 452., 453., 454., 455., 456., 457., 458., 459., 460.,
      461., 462., 463., 464., 465., 466., 467., 468., 465., 466., 467., 468.,
      465., 466., 467., 468., 465., 466., 467., 468., 465., 466., 467., 468.,
      465., 466., 467., 468., 489., 490., 491., 492., 493., 494., 495., 496.,
      497., 498., 499., 500., 501., 502., 503., 504., 505., 506., 507., 508.,
      509., 510., 511., 512., 513., 514., 515., 516., 517., 518., 519., 520.,
      517., 518., 519., 520., 517., 518., 519., 520., 517., 518., 519., 520.,
      517., 518., 519., 520., 517., 518., 519., 520., 541., 542., 543., 544.,
      545., 546., 547., 548., 549., 550., 551., 552., 553., 554., 555., 556.,
      557., 558., 559., 560., 561., 562., 563., 564., 565., 566., 567., 568.,
      569., 570., 571., 572., 569., 570., 571., 572., 569., 570., 571., 572.,
      569., 570., 571., 572., 569., 570., 571., 572., 569., 570., 571., 572.,
      593., 594., 595., 596., 597., 598., 599., 600., 601., 602., 603., 604.,
      605., 606., 607., 608., 609., 610., 611., 612., 613., 614., 615., 616.,
      617., 618., 619., 620., 621., 622., 623., 624., 621., 622., 623., 624.,
      621., 622., 623., 624., 621., 622., 623., 624., 621., 622., 623., 624.,
      621., 622., 623., 624., 645., 646., 647., 648., 649., 650., 651., 652.,
      653., 654., 655., 656., 657., 658., 659., 660., 661., 662., 663., 664.,
      665., 666., 667., 668., 669., 670., 671., 672., 673., 674., 675., 676.,
      673., 674., 675., 676., 673., 674., 675., 676., 673., 674., 675., 676.,
      673., 674., 675., 676., 673., 674., 675., 676., 697., 698., 699., 700.,
      701., 702., 703., 704., 705., 706., 707., 708., 709., 710., 711., 712.,
      713., 714., 715., 716., 717., 718., 719., 720., 721., 722., 723., 724.,
      725., 726., 727., 728., 725., 726., 727., 728., 725., 726., 727., 728.,
      725., 726., 727., 728., 725., 726., 727., 728., 725., 726., 727., 728.,
      697., 698., 699., 700., 701., 702., 703., 704., 705., 706., 707., 708.,
      709., 710., 711., 712., 713., 714., 715., 716., 717., 718., 719., 720.,
      721., 722., 723., 724., 725., 726., 727., 728., 725., 726., 727., 728.,
      725., 726., 727., 728., 725., 726., 727., 728., 725., 726., 727., 728.,
      725., 726., 727., 728., 697., 698., 699., 700., 701., 702., 703., 704.,
      705., 706., 707., 708., 709., 710., 711., 712., 713., 714., 715., 716.,
      717., 718., 719., 720., 721., 722., 723., 724., 725., 726., 727., 728.,
      725., 726., 727., 728., 725., 726., 727., 728., 725., 726., 727., 728.,
      725., 726., 727., 728., 725., 726., 727., 728., 697., 698., 699., 700.,
      701., 702., 703., 704., 705., 706., 707., 708., 709., 710., 711., 712.,
      713., 714., 715., 716., 717., 718., 719., 720., 721., 722., 723., 724.,
      725., 726., 727., 728., 725., 726., 727., 728., 725., 726., 727., 728.,
      725., 726., 727., 728., 725., 726., 727., 728., 725., 726., 727., 728.,
      697., 698., 699., 700., 701., 702., 703., 704., 705., 706., 707., 708.,
      709., 710., 711., 712., 713., 714., 715., 716., 717., 718., 719., 720.,
      721., 722., 723., 724., 725., 726., 727., 728., 725., 726., 727., 728.,
      725., 726., 727., 728., 725., 726., 727., 728., 725., 726., 727., 728.,
      725., 726., 727., 728., 697., 698., 699., 700., 701., 702., 703., 704.,
      705., 706., 707., 708., 709., 710., 711., 712., 713., 714., 715., 716.,
      717., 718., 719., 720., 721., 722., 723., 724., 725., 726., 727., 728.,
      725., 726., 727., 728., 725., 726., 727., 728., 725., 726., 727., 728.,
      725., 726., 727., 728., 725., 726., 727., 728.};
  const std::array<int, 4> in_shape = {{1, 14, 13, 4}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, VALID1x14x13x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      561., 562., 563., 564., 565., 566., 567., 568., 569., 570., 571., 572.,
      613., 614., 615., 616., 617., 618., 619., 620., 621., 622., 623., 624.,
      665., 666., 667., 668., 669., 670., 671., 672., 673., 674., 675., 676.,
      717., 718., 719., 720., 721., 722., 723., 724., 725., 726., 727., 728.};
  const std::array<int, 4> in_shape = {{1, 14, 13, 4}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, SAME1x14x14x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      76.,  77.,  78.,  79.,  80.,  81.,  82.,  83.,  84.,  84.,  84.,  84.,
      84.,  84.,  90.,  91.,  92.,  93.,  94.,  95.,  96.,  97.,  98.,  98.,
      98.,  98.,  98.,  98.,  104., 105., 106., 107., 108., 109., 110., 111.,
      112., 112., 112., 112., 112., 112., 118., 119., 120., 121., 122., 123.,
      124., 125., 126., 126., 126., 126., 126., 126., 132., 133., 134., 135.,
      136., 137., 138., 139., 140., 140., 140., 140., 140., 140., 146., 147.,
      148., 149., 150., 151., 152., 153., 154., 154., 154., 154., 154., 154.,
      160., 161., 162., 163., 164., 165., 166., 167., 168., 168., 168., 168.,
      168., 168., 174., 175., 176., 177., 178., 179., 180., 181., 182., 182.,
      182., 182., 182., 182., 188., 189., 190., 191., 192., 193., 194., 195.,
      196., 196., 196., 196., 196., 196., 188., 189., 190., 191., 192., 193.,
      194., 195., 196., 196., 196., 196., 196., 196., 188., 189., 190., 191.,
      192., 193., 194., 195., 196., 196., 196., 196., 196., 196., 188., 189.,
      190., 191., 192., 193., 194., 195., 196., 196., 196., 196., 196., 196.,
      188., 189., 190., 191., 192., 193., 194., 195., 196., 196., 196., 196.,
      196., 196., 188., 189., 190., 191., 192., 193., 194., 195., 196., 196.,
      196., 196., 196., 196.};
  const std::array<int, 4> in_shape = {{1, 14, 14, 1}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, VALID1x14x14x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {151., 152., 153., 154., 165., 166.,
                                         167., 168., 179., 180., 181., 182.,
                                         193., 194., 195., 196.};
  const std::array<int, 4> in_shape = {{1, 14, 14, 1}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, SAME1x14x14x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      151., 152., 153., 154., 155., 156., 157., 158., 159., 160., 161., 162.,
      163., 164., 165., 166., 167., 168., 167., 168., 167., 168., 167., 168.,
      167., 168., 167., 168., 179., 180., 181., 182., 183., 184., 185., 186.,
      187., 188., 189., 190., 191., 192., 193., 194., 195., 196., 195., 196.,
      195., 196., 195., 196., 195., 196., 195., 196., 207., 208., 209., 210.,
      211., 212., 213., 214., 215., 216., 217., 218., 219., 220., 221., 222.,
      223., 224., 223., 224., 223., 224., 223., 224., 223., 224., 223., 224.,
      235., 236., 237., 238., 239., 240., 241., 242., 243., 244., 245., 246.,
      247., 248., 249., 250., 251., 252., 251., 252., 251., 252., 251., 252.,
      251., 252., 251., 252., 263., 264., 265., 266., 267., 268., 269., 270.,
      271., 272., 273., 274., 275., 276., 277., 278., 279., 280., 279., 280.,
      279., 280., 279., 280., 279., 280., 279., 280., 291., 292., 293., 294.,
      295., 296., 297., 298., 299., 300., 301., 302., 303., 304., 305., 306.,
      307., 308., 307., 308., 307., 308., 307., 308., 307., 308., 307., 308.,
      319., 320., 321., 322., 323., 324., 325., 326., 327., 328., 329., 330.,
      331., 332., 333., 334., 335., 336., 335., 336., 335., 336., 335., 336.,
      335., 336., 335., 336., 347., 348., 349., 350., 351., 352., 353., 354.,
      355., 356., 357., 358., 359., 360., 361., 362., 363., 364., 363., 364.,
      363., 364., 363., 364., 363., 364., 363., 364., 375., 376., 377., 378.,
      379., 380., 381., 382., 383., 384., 385., 386., 387., 388., 389., 390.,
      391., 392., 391., 392., 391., 392., 391., 392., 391., 392., 391., 392.,
      375., 376., 377., 378., 379., 380., 381., 382., 383., 384., 385., 386.,
      387., 388., 389., 390., 391., 392., 391., 392., 391., 392., 391., 392.,
      391., 392., 391., 392., 375., 376., 377., 378., 379., 380., 381., 382.,
      383., 384., 385., 386., 387., 388., 389., 390., 391., 392., 391., 392.,
      391., 392., 391., 392., 391., 392., 391., 392., 375., 376., 377., 378.,
      379., 380., 381., 382., 383., 384., 385., 386., 387., 388., 389., 390.,
      391., 392., 391., 392., 391., 392., 391., 392., 391., 392., 391., 392.,
      375., 376., 377., 378., 379., 380., 381., 382., 383., 384., 385., 386.,
      387., 388., 389., 390., 391., 392., 391., 392., 391., 392., 391., 392.,
      391., 392., 391., 392., 375., 376., 377., 378., 379., 380., 381., 382.,
      383., 384., 385., 386., 387., 388., 389., 390., 391., 392., 391., 392.,
      391., 392., 391., 392., 391., 392., 391., 392.};
  const std::array<int, 4> in_shape = {{1, 14, 14, 2}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, VALID1x14x14x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      301., 302., 303., 304., 305., 306., 307., 308., 329., 330., 331.,
      332., 333., 334., 335., 336., 357., 358., 359., 360., 361., 362.,
      363., 364., 385., 386., 387., 388., 389., 390., 391., 392.};
  const std::array<int, 4> in_shape = {{1, 14, 14, 2}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, SAME1x14x14x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      301., 302., 303., 304., 305., 306., 307., 308., 309., 310., 311., 312.,
      313., 314., 315., 316., 317., 318., 319., 320., 321., 322., 323., 324.,
      325., 326., 327., 328., 329., 330., 331., 332., 333., 334., 335., 336.,
      333., 334., 335., 336., 333., 334., 335., 336., 333., 334., 335., 336.,
      333., 334., 335., 336., 333., 334., 335., 336., 357., 358., 359., 360.,
      361., 362., 363., 364., 365., 366., 367., 368., 369., 370., 371., 372.,
      373., 374., 375., 376., 377., 378., 379., 380., 381., 382., 383., 384.,
      385., 386., 387., 388., 389., 390., 391., 392., 389., 390., 391., 392.,
      389., 390., 391., 392., 389., 390., 391., 392., 389., 390., 391., 392.,
      389., 390., 391., 392., 413., 414., 415., 416., 417., 418., 419., 420.,
      421., 422., 423., 424., 425., 426., 427., 428., 429., 430., 431., 432.,
      433., 434., 435., 436., 437., 438., 439., 440., 441., 442., 443., 444.,
      445., 446., 447., 448., 445., 446., 447., 448., 445., 446., 447., 448.,
      445., 446., 447., 448., 445., 446., 447., 448., 445., 446., 447., 448.,
      469., 470., 471., 472., 473., 474., 475., 476., 477., 478., 479., 480.,
      481., 482., 483., 484., 485., 486., 487., 488., 489., 490., 491., 492.,
      493., 494., 495., 496., 497., 498., 499., 500., 501., 502., 503., 504.,
      501., 502., 503., 504., 501., 502., 503., 504., 501., 502., 503., 504.,
      501., 502., 503., 504., 501., 502., 503., 504., 525., 526., 527., 528.,
      529., 530., 531., 532., 533., 534., 535., 536., 537., 538., 539., 540.,
      541., 542., 543., 544., 545., 546., 547., 548., 549., 550., 551., 552.,
      553., 554., 555., 556., 557., 558., 559., 560., 557., 558., 559., 560.,
      557., 558., 559., 560., 557., 558., 559., 560., 557., 558., 559., 560.,
      557., 558., 559., 560., 581., 582., 583., 584., 585., 586., 587., 588.,
      589., 590., 591., 592., 593., 594., 595., 596., 597., 598., 599., 600.,
      601., 602., 603., 604., 605., 606., 607., 608., 609., 610., 611., 612.,
      613., 614., 615., 616., 613., 614., 615., 616., 613., 614., 615., 616.,
      613., 614., 615., 616., 613., 614., 615., 616., 613., 614., 615., 616.,
      637., 638., 639., 640., 641., 642., 643., 644., 645., 646., 647., 648.,
      649., 650., 651., 652., 653., 654., 655., 656., 657., 658., 659., 660.,
      661., 662., 663., 664., 665., 666., 667., 668., 669., 670., 671., 672.,
      669., 670., 671., 672., 669., 670., 671., 672., 669., 670., 671., 672.,
      669., 670., 671., 672., 669., 670., 671., 672., 693., 694., 695., 696.,
      697., 698., 699., 700., 701., 702., 703., 704., 705., 706., 707., 708.,
      709., 710., 711., 712., 713., 714., 715., 716., 717., 718., 719., 720.,
      721., 722., 723., 724., 725., 726., 727., 728., 725., 726., 727., 728.,
      725., 726., 727., 728., 725., 726., 727., 728., 725., 726., 727., 728.,
      725., 726., 727., 728., 749., 750., 751., 752., 753., 754., 755., 756.,
      757., 758., 759., 760., 761., 762., 763., 764., 765., 766., 767., 768.,
      769., 770., 771., 772., 773., 774., 775., 776., 777., 778., 779., 780.,
      781., 782., 783., 784., 781., 782., 783., 784., 781., 782., 783., 784.,
      781., 782., 783., 784., 781., 782., 783., 784., 781., 782., 783., 784.,
      749., 750., 751., 752., 753., 754., 755., 756., 757., 758., 759., 760.,
      761., 762., 763., 764., 765., 766., 767., 768., 769., 770., 771., 772.,
      773., 774., 775., 776., 777., 778., 779., 780., 781., 782., 783., 784.,
      781., 782., 783., 784., 781., 782., 783., 784., 781., 782., 783., 784.,
      781., 782., 783., 784., 781., 782., 783., 784., 749., 750., 751., 752.,
      753., 754., 755., 756., 757., 758., 759., 760., 761., 762., 763., 764.,
      765., 766., 767., 768., 769., 770., 771., 772., 773., 774., 775., 776.,
      777., 778., 779., 780., 781., 782., 783., 784., 781., 782., 783., 784.,
      781., 782., 783., 784., 781., 782., 783., 784., 781., 782., 783., 784.,
      781., 782., 783., 784., 749., 750., 751., 752., 753., 754., 755., 756.,
      757., 758., 759., 760., 761., 762., 763., 764., 765., 766., 767., 768.,
      769., 770., 771., 772., 773., 774., 775., 776., 777., 778., 779., 780.,
      781., 782., 783., 784., 781., 782., 783., 784., 781., 782., 783., 784.,
      781., 782., 783., 784., 781., 782., 783., 784., 781., 782., 783., 784.,
      749., 750., 751., 752., 753., 754., 755., 756., 757., 758., 759., 760.,
      761., 762., 763., 764., 765., 766., 767., 768., 769., 770., 771., 772.,
      773., 774., 775., 776., 777., 778., 779., 780., 781., 782., 783., 784.,
      781., 782., 783., 784., 781., 782., 783., 784., 781., 782., 783., 784.,
      781., 782., 783., 784., 781., 782., 783., 784., 749., 750., 751., 752.,
      753., 754., 755., 756., 757., 758., 759., 760., 761., 762., 763., 764.,
      765., 766., 767., 768., 769., 770., 771., 772., 773., 774., 775., 776.,
      777., 778., 779., 780., 781., 782., 783., 784., 781., 782., 783., 784.,
      781., 782., 783., 784., 781., 782., 783., 784., 781., 782., 783., 784.,
      781., 782., 783., 784.};
  const std::array<int, 4> in_shape = {{1, 14, 14, 4}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, VALID1x14x14x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      601., 602., 603., 604., 605., 606., 607., 608., 609., 610., 611.,
      612., 613., 614., 615., 616., 657., 658., 659., 660., 661., 662.,
      663., 664., 665., 666., 667., 668., 669., 670., 671., 672., 713.,
      714., 715., 716., 717., 718., 719., 720., 721., 722., 723., 724.,
      725., 726., 727., 728., 769., 770., 771., 772., 773., 774., 775.,
      776., 777., 778., 779., 780., 781., 782., 783., 784.};
  const std::array<int, 4> in_shape = {{1, 14, 14, 4}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, SAME3x12x12x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      66.,  67.,  68.,  69.,  70.,  71.,  72.,  72.,  72.,  72.,  72.,  72.,
      78.,  79.,  80.,  81.,  82.,  83.,  84.,  84.,  84.,  84.,  84.,  84.,
      90.,  91.,  92.,  93.,  94.,  95.,  96.,  96.,  96.,  96.,  96.,  96.,
      102., 103., 104., 105., 106., 107., 108., 108., 108., 108., 108., 108.,
      114., 115., 116., 117., 118., 119., 120., 120., 120., 120., 120., 120.,
      126., 127., 128., 129., 130., 131., 132., 132., 132., 132., 132., 132.,
      138., 139., 140., 141., 142., 143., 144., 144., 144., 144., 144., 144.,
      138., 139., 140., 141., 142., 143., 144., 144., 144., 144., 144., 144.,
      138., 139., 140., 141., 142., 143., 144., 144., 144., 144., 144., 144.,
      138., 139., 140., 141., 142., 143., 144., 144., 144., 144., 144., 144.,
      138., 139., 140., 141., 142., 143., 144., 144., 144., 144., 144., 144.,
      138., 139., 140., 141., 142., 143., 144., 144., 144., 144., 144., 144.,
      210., 211., 212., 213., 214., 215., 216., 216., 216., 216., 216., 216.,
      222., 223., 224., 225., 226., 227., 228., 228., 228., 228., 228., 228.,
      234., 235., 236., 237., 238., 239., 240., 240., 240., 240., 240., 240.,
      246., 247., 248., 249., 250., 251., 252., 252., 252., 252., 252., 252.,
      258., 259., 260., 261., 262., 263., 264., 264., 264., 264., 264., 264.,
      270., 271., 272., 273., 274., 275., 276., 276., 276., 276., 276., 276.,
      282., 283., 284., 285., 286., 287., 288., 288., 288., 288., 288., 288.,
      282., 283., 284., 285., 286., 287., 288., 288., 288., 288., 288., 288.,
      282., 283., 284., 285., 286., 287., 288., 288., 288., 288., 288., 288.,
      282., 283., 284., 285., 286., 287., 288., 288., 288., 288., 288., 288.,
      282., 283., 284., 285., 286., 287., 288., 288., 288., 288., 288., 288.,
      282., 283., 284., 285., 286., 287., 288., 288., 288., 288., 288., 288.,
      354., 355., 356., 357., 358., 359., 360., 360., 360., 360., 360., 360.,
      366., 367., 368., 369., 370., 371., 372., 372., 372., 372., 372., 372.,
      378., 379., 380., 381., 382., 383., 384., 384., 384., 384., 384., 384.,
      390., 391., 392., 393., 394., 395., 396., 396., 396., 396., 396., 396.,
      402., 403., 404., 405., 406., 407., 408., 408., 408., 408., 408., 408.,
      414., 415., 416., 417., 418., 419., 420., 420., 420., 420., 420., 420.,
      426., 427., 428., 429., 430., 431., 432., 432., 432., 432., 432., 432.,
      426., 427., 428., 429., 430., 431., 432., 432., 432., 432., 432., 432.,
      426., 427., 428., 429., 430., 431., 432., 432., 432., 432., 432., 432.,
      426., 427., 428., 429., 430., 431., 432., 432., 432., 432., 432., 432.,
      426., 427., 428., 429., 430., 431., 432., 432., 432., 432., 432., 432.,
      426., 427., 428., 429., 430., 431., 432., 432., 432., 432., 432., 432.};
  const std::array<int, 4> in_shape = {{3, 12, 12, 1}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, VALID3x12x12x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {131., 132., 143., 144., 275., 276.,
                                         287., 288., 419., 420., 431., 432.};
  const std::array<int, 4> in_shape = {{3, 12, 12, 1}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, SAME3x12x12x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      131., 132., 133., 134., 135., 136., 137., 138., 139., 140., 141., 142.,
      143., 144., 143., 144., 143., 144., 143., 144., 143., 144., 143., 144.,
      155., 156., 157., 158., 159., 160., 161., 162., 163., 164., 165., 166.,
      167., 168., 167., 168., 167., 168., 167., 168., 167., 168., 167., 168.,
      179., 180., 181., 182., 183., 184., 185., 186., 187., 188., 189., 190.,
      191., 192., 191., 192., 191., 192., 191., 192., 191., 192., 191., 192.,
      203., 204., 205., 206., 207., 208., 209., 210., 211., 212., 213., 214.,
      215., 216., 215., 216., 215., 216., 215., 216., 215., 216., 215., 216.,
      227., 228., 229., 230., 231., 232., 233., 234., 235., 236., 237., 238.,
      239., 240., 239., 240., 239., 240., 239., 240., 239., 240., 239., 240.,
      251., 252., 253., 254., 255., 256., 257., 258., 259., 260., 261., 262.,
      263., 264., 263., 264., 263., 264., 263., 264., 263., 264., 263., 264.,
      275., 276., 277., 278., 279., 280., 281., 282., 283., 284., 285., 286.,
      287., 288., 287., 288., 287., 288., 287., 288., 287., 288., 287., 288.,
      275., 276., 277., 278., 279., 280., 281., 282., 283., 284., 285., 286.,
      287., 288., 287., 288., 287., 288., 287., 288., 287., 288., 287., 288.,
      275., 276., 277., 278., 279., 280., 281., 282., 283., 284., 285., 286.,
      287., 288., 287., 288., 287., 288., 287., 288., 287., 288., 287., 288.,
      275., 276., 277., 278., 279., 280., 281., 282., 283., 284., 285., 286.,
      287., 288., 287., 288., 287., 288., 287., 288., 287., 288., 287., 288.,
      275., 276., 277., 278., 279., 280., 281., 282., 283., 284., 285., 286.,
      287., 288., 287., 288., 287., 288., 287., 288., 287., 288., 287., 288.,
      275., 276., 277., 278., 279., 280., 281., 282., 283., 284., 285., 286.,
      287., 288., 287., 288., 287., 288., 287., 288., 287., 288., 287., 288.,
      419., 420., 421., 422., 423., 424., 425., 426., 427., 428., 429., 430.,
      431., 432., 431., 432., 431., 432., 431., 432., 431., 432., 431., 432.,
      443., 444., 445., 446., 447., 448., 449., 450., 451., 452., 453., 454.,
      455., 456., 455., 456., 455., 456., 455., 456., 455., 456., 455., 456.,
      467., 468., 469., 470., 471., 472., 473., 474., 475., 476., 477., 478.,
      479., 480., 479., 480., 479., 480., 479., 480., 479., 480., 479., 480.,
      491., 492., 493., 494., 495., 496., 497., 498., 499., 500., 501., 502.,
      503., 504., 503., 504., 503., 504., 503., 504., 503., 504., 503., 504.,
      515., 516., 517., 518., 519., 520., 521., 522., 523., 524., 525., 526.,
      527., 528., 527., 528., 527., 528., 527., 528., 527., 528., 527., 528.,
      539., 540., 541., 542., 543., 544., 545., 546., 547., 548., 549., 550.,
      551., 552., 551., 552., 551., 552., 551., 552., 551., 552., 551., 552.,
      563., 564., 565., 566., 567., 568., 569., 570., 571., 572., 573., 574.,
      575., 576., 575., 576., 575., 576., 575., 576., 575., 576., 575., 576.,
      563., 564., 565., 566., 567., 568., 569., 570., 571., 572., 573., 574.,
      575., 576., 575., 576., 575., 576., 575., 576., 575., 576., 575., 576.,
      563., 564., 565., 566., 567., 568., 569., 570., 571., 572., 573., 574.,
      575., 576., 575., 576., 575., 576., 575., 576., 575., 576., 575., 576.,
      563., 564., 565., 566., 567., 568., 569., 570., 571., 572., 573., 574.,
      575., 576., 575., 576., 575., 576., 575., 576., 575., 576., 575., 576.,
      563., 564., 565., 566., 567., 568., 569., 570., 571., 572., 573., 574.,
      575., 576., 575., 576., 575., 576., 575., 576., 575., 576., 575., 576.,
      563., 564., 565., 566., 567., 568., 569., 570., 571., 572., 573., 574.,
      575., 576., 575., 576., 575., 576., 575., 576., 575., 576., 575., 576.,
      707., 708., 709., 710., 711., 712., 713., 714., 715., 716., 717., 718.,
      719., 720., 719., 720., 719., 720., 719., 720., 719., 720., 719., 720.,
      731., 732., 733., 734., 735., 736., 737., 738., 739., 740., 741., 742.,
      743., 744., 743., 744., 743., 744., 743., 744., 743., 744., 743., 744.,
      755., 756., 757., 758., 759., 760., 761., 762., 763., 764., 765., 766.,
      767., 768., 767., 768., 767., 768., 767., 768., 767., 768., 767., 768.,
      779., 780., 781., 782., 783., 784., 785., 786., 787., 788., 789., 790.,
      791., 792., 791., 792., 791., 792., 791., 792., 791., 792., 791., 792.,
      803., 804., 805., 806., 807., 808., 809., 810., 811., 812., 813., 814.,
      815., 816., 815., 816., 815., 816., 815., 816., 815., 816., 815., 816.,
      827., 828., 829., 830., 831., 832., 833., 834., 835., 836., 837., 838.,
      839., 840., 839., 840., 839., 840., 839., 840., 839., 840., 839., 840.,
      851., 852., 853., 854., 855., 856., 857., 858., 859., 860., 861., 862.,
      863., 864., 863., 864., 863., 864., 863., 864., 863., 864., 863., 864.,
      851., 852., 853., 854., 855., 856., 857., 858., 859., 860., 861., 862.,
      863., 864., 863., 864., 863., 864., 863., 864., 863., 864., 863., 864.,
      851., 852., 853., 854., 855., 856., 857., 858., 859., 860., 861., 862.,
      863., 864., 863., 864., 863., 864., 863., 864., 863., 864., 863., 864.,
      851., 852., 853., 854., 855., 856., 857., 858., 859., 860., 861., 862.,
      863., 864., 863., 864., 863., 864., 863., 864., 863., 864., 863., 864.,
      851., 852., 853., 854., 855., 856., 857., 858., 859., 860., 861., 862.,
      863., 864., 863., 864., 863., 864., 863., 864., 863., 864., 863., 864.,
      851., 852., 853., 854., 855., 856., 857., 858., 859., 860., 861., 862.,
      863., 864., 863., 864., 863., 864., 863., 864., 863., 864., 863., 864.};
  const std::array<int, 4> in_shape = {{3, 12, 12, 2}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, VALID3x12x12x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      261., 262., 263., 264., 285., 286., 287., 288., 549., 550., 551., 552.,
      573., 574., 575., 576., 837., 838., 839., 840., 861., 862., 863., 864.};
  const std::array<int, 4> in_shape = {{3, 12, 12, 2}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, SAME3x12x12x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      261.,  262.,  263.,  264.,  265.,  266.,  267.,  268.,  269.,  270.,
      271.,  272.,  273.,  274.,  275.,  276.,  277.,  278.,  279.,  280.,
      281.,  282.,  283.,  284.,  285.,  286.,  287.,  288.,  285.,  286.,
      287.,  288.,  285.,  286.,  287.,  288.,  285.,  286.,  287.,  288.,
      285.,  286.,  287.,  288.,  285.,  286.,  287.,  288.,  309.,  310.,
      311.,  312.,  313.,  314.,  315.,  316.,  317.,  318.,  319.,  320.,
      321.,  322.,  323.,  324.,  325.,  326.,  327.,  328.,  329.,  330.,
      331.,  332.,  333.,  334.,  335.,  336.,  333.,  334.,  335.,  336.,
      333.,  334.,  335.,  336.,  333.,  334.,  335.,  336.,  333.,  334.,
      335.,  336.,  333.,  334.,  335.,  336.,  357.,  358.,  359.,  360.,
      361.,  362.,  363.,  364.,  365.,  366.,  367.,  368.,  369.,  370.,
      371.,  372.,  373.,  374.,  375.,  376.,  377.,  378.,  379.,  380.,
      381.,  382.,  383.,  384.,  381.,  382.,  383.,  384.,  381.,  382.,
      383.,  384.,  381.,  382.,  383.,  384.,  381.,  382.,  383.,  384.,
      381.,  382.,  383.,  384.,  405.,  406.,  407.,  408.,  409.,  410.,
      411.,  412.,  413.,  414.,  415.,  416.,  417.,  418.,  419.,  420.,
      421.,  422.,  423.,  424.,  425.,  426.,  427.,  428.,  429.,  430.,
      431.,  432.,  429.,  430.,  431.,  432.,  429.,  430.,  431.,  432.,
      429.,  430.,  431.,  432.,  429.,  430.,  431.,  432.,  429.,  430.,
      431.,  432.,  453.,  454.,  455.,  456.,  457.,  458.,  459.,  460.,
      461.,  462.,  463.,  464.,  465.,  466.,  467.,  468.,  469.,  470.,
      471.,  472.,  473.,  474.,  475.,  476.,  477.,  478.,  479.,  480.,
      477.,  478.,  479.,  480.,  477.,  478.,  479.,  480.,  477.,  478.,
      479.,  480.,  477.,  478.,  479.,  480.,  477.,  478.,  479.,  480.,
      501.,  502.,  503.,  504.,  505.,  506.,  507.,  508.,  509.,  510.,
      511.,  512.,  513.,  514.,  515.,  516.,  517.,  518.,  519.,  520.,
      521.,  522.,  523.,  524.,  525.,  526.,  527.,  528.,  525.,  526.,
      527.,  528.,  525.,  526.,  527.,  528.,  525.,  526.,  527.,  528.,
      525.,  526.,  527.,  528.,  525.,  526.,  527.,  528.,  549.,  550.,
      551.,  552.,  553.,  554.,  555.,  556.,  557.,  558.,  559.,  560.,
      561.,  562.,  563.,  564.,  565.,  566.,  567.,  568.,  569.,  570.,
      571.,  572.,  573.,  574.,  575.,  576.,  573.,  574.,  575.,  576.,
      573.,  574.,  575.,  576.,  573.,  574.,  575.,  576.,  573.,  574.,
      575.,  576.,  573.,  574.,  575.,  576.,  549.,  550.,  551.,  552.,
      553.,  554.,  555.,  556.,  557.,  558.,  559.,  560.,  561.,  562.,
      563.,  564.,  565.,  566.,  567.,  568.,  569.,  570.,  571.,  572.,
      573.,  574.,  575.,  576.,  573.,  574.,  575.,  576.,  573.,  574.,
      575.,  576.,  573.,  574.,  575.,  576.,  573.,  574.,  575.,  576.,
      573.,  574.,  575.,  576.,  549.,  550.,  551.,  552.,  553.,  554.,
      555.,  556.,  557.,  558.,  559.,  560.,  561.,  562.,  563.,  564.,
      565.,  566.,  567.,  568.,  569.,  570.,  571.,  572.,  573.,  574.,
      575.,  576.,  573.,  574.,  575.,  576.,  573.,  574.,  575.,  576.,
      573.,  574.,  575.,  576.,  573.,  574.,  575.,  576.,  573.,  574.,
      575.,  576.,  549.,  550.,  551.,  552.,  553.,  554.,  555.,  556.,
      557.,  558.,  559.,  560.,  561.,  562.,  563.,  564.,  565.,  566.,
      567.,  568.,  569.,  570.,  571.,  572.,  573.,  574.,  575.,  576.,
      573.,  574.,  575.,  576.,  573.,  574.,  575.,  576.,  573.,  574.,
      575.,  576.,  573.,  574.,  575.,  576.,  573.,  574.,  575.,  576.,
      549.,  550.,  551.,  552.,  553.,  554.,  555.,  556.,  557.,  558.,
      559.,  560.,  561.,  562.,  563.,  564.,  565.,  566.,  567.,  568.,
      569.,  570.,  571.,  572.,  573.,  574.,  575.,  576.,  573.,  574.,
      575.,  576.,  573.,  574.,  575.,  576.,  573.,  574.,  575.,  576.,
      573.,  574.,  575.,  576.,  573.,  574.,  575.,  576.,  549.,  550.,
      551.,  552.,  553.,  554.,  555.,  556.,  557.,  558.,  559.,  560.,
      561.,  562.,  563.,  564.,  565.,  566.,  567.,  568.,  569.,  570.,
      571.,  572.,  573.,  574.,  575.,  576.,  573.,  574.,  575.,  576.,
      573.,  574.,  575.,  576.,  573.,  574.,  575.,  576.,  573.,  574.,
      575.,  576.,  573.,  574.,  575.,  576.,  837.,  838.,  839.,  840.,
      841.,  842.,  843.,  844.,  845.,  846.,  847.,  848.,  849.,  850.,
      851.,  852.,  853.,  854.,  855.,  856.,  857.,  858.,  859.,  860.,
      861.,  862.,  863.,  864.,  861.,  862.,  863.,  864.,  861.,  862.,
      863.,  864.,  861.,  862.,  863.,  864.,  861.,  862.,  863.,  864.,
      861.,  862.,  863.,  864.,  885.,  886.,  887.,  888.,  889.,  890.,
      891.,  892.,  893.,  894.,  895.,  896.,  897.,  898.,  899.,  900.,
      901.,  902.,  903.,  904.,  905.,  906.,  907.,  908.,  909.,  910.,
      911.,  912.,  909.,  910.,  911.,  912.,  909.,  910.,  911.,  912.,
      909.,  910.,  911.,  912.,  909.,  910.,  911.,  912.,  909.,  910.,
      911.,  912.,  933.,  934.,  935.,  936.,  937.,  938.,  939.,  940.,
      941.,  942.,  943.,  944.,  945.,  946.,  947.,  948.,  949.,  950.,
      951.,  952.,  953.,  954.,  955.,  956.,  957.,  958.,  959.,  960.,
      957.,  958.,  959.,  960.,  957.,  958.,  959.,  960.,  957.,  958.,
      959.,  960.,  957.,  958.,  959.,  960.,  957.,  958.,  959.,  960.,
      981.,  982.,  983.,  984.,  985.,  986.,  987.,  988.,  989.,  990.,
      991.,  992.,  993.,  994.,  995.,  996.,  997.,  998.,  999.,  1000.,
      1001., 1002., 1003., 1004., 1005., 1006., 1007., 1008., 1005., 1006.,
      1007., 1008., 1005., 1006., 1007., 1008., 1005., 1006., 1007., 1008.,
      1005., 1006., 1007., 1008., 1005., 1006., 1007., 1008., 1029., 1030.,
      1031., 1032., 1033., 1034., 1035., 1036., 1037., 1038., 1039., 1040.,
      1041., 1042., 1043., 1044., 1045., 1046., 1047., 1048., 1049., 1050.,
      1051., 1052., 1053., 1054., 1055., 1056., 1053., 1054., 1055., 1056.,
      1053., 1054., 1055., 1056., 1053., 1054., 1055., 1056., 1053., 1054.,
      1055., 1056., 1053., 1054., 1055., 1056., 1077., 1078., 1079., 1080.,
      1081., 1082., 1083., 1084., 1085., 1086., 1087., 1088., 1089., 1090.,
      1091., 1092., 1093., 1094., 1095., 1096., 1097., 1098., 1099., 1100.,
      1101., 1102., 1103., 1104., 1101., 1102., 1103., 1104., 1101., 1102.,
      1103., 1104., 1101., 1102., 1103., 1104., 1101., 1102., 1103., 1104.,
      1101., 1102., 1103., 1104., 1125., 1126., 1127., 1128., 1129., 1130.,
      1131., 1132., 1133., 1134., 1135., 1136., 1137., 1138., 1139., 1140.,
      1141., 1142., 1143., 1144., 1145., 1146., 1147., 1148., 1149., 1150.,
      1151., 1152., 1149., 1150., 1151., 1152., 1149., 1150., 1151., 1152.,
      1149., 1150., 1151., 1152., 1149., 1150., 1151., 1152., 1149., 1150.,
      1151., 1152., 1125., 1126., 1127., 1128., 1129., 1130., 1131., 1132.,
      1133., 1134., 1135., 1136., 1137., 1138., 1139., 1140., 1141., 1142.,
      1143., 1144., 1145., 1146., 1147., 1148., 1149., 1150., 1151., 1152.,
      1149., 1150., 1151., 1152., 1149., 1150., 1151., 1152., 1149., 1150.,
      1151., 1152., 1149., 1150., 1151., 1152., 1149., 1150., 1151., 1152.,
      1125., 1126., 1127., 1128., 1129., 1130., 1131., 1132., 1133., 1134.,
      1135., 1136., 1137., 1138., 1139., 1140., 1141., 1142., 1143., 1144.,
      1145., 1146., 1147., 1148., 1149., 1150., 1151., 1152., 1149., 1150.,
      1151., 1152., 1149., 1150., 1151., 1152., 1149., 1150., 1151., 1152.,
      1149., 1150., 1151., 1152., 1149., 1150., 1151., 1152., 1125., 1126.,
      1127., 1128., 1129., 1130., 1131., 1132., 1133., 1134., 1135., 1136.,
      1137., 1138., 1139., 1140., 1141., 1142., 1143., 1144., 1145., 1146.,
      1147., 1148., 1149., 1150., 1151., 1152., 1149., 1150., 1151., 1152.,
      1149., 1150., 1151., 1152., 1149., 1150., 1151., 1152., 1149., 1150.,
      1151., 1152., 1149., 1150., 1151., 1152., 1125., 1126., 1127., 1128.,
      1129., 1130., 1131., 1132., 1133., 1134., 1135., 1136., 1137., 1138.,
      1139., 1140., 1141., 1142., 1143., 1144., 1145., 1146., 1147., 1148.,
      1149., 1150., 1151., 1152., 1149., 1150., 1151., 1152., 1149., 1150.,
      1151., 1152., 1149., 1150., 1151., 1152., 1149., 1150., 1151., 1152.,
      1149., 1150., 1151., 1152., 1125., 1126., 1127., 1128., 1129., 1130.,
      1131., 1132., 1133., 1134., 1135., 1136., 1137., 1138., 1139., 1140.,
      1141., 1142., 1143., 1144., 1145., 1146., 1147., 1148., 1149., 1150.,
      1151., 1152., 1149., 1150., 1151., 1152., 1149., 1150., 1151., 1152.,
      1149., 1150., 1151., 1152., 1149., 1150., 1151., 1152., 1149., 1150.,
      1151., 1152., 1413., 1414., 1415., 1416., 1417., 1418., 1419., 1420.,
      1421., 1422., 1423., 1424., 1425., 1426., 1427., 1428., 1429., 1430.,
      1431., 1432., 1433., 1434., 1435., 1436., 1437., 1438., 1439., 1440.,
      1437., 1438., 1439., 1440., 1437., 1438., 1439., 1440., 1437., 1438.,
      1439., 1440., 1437., 1438., 1439., 1440., 1437., 1438., 1439., 1440.,
      1461., 1462., 1463., 1464., 1465., 1466., 1467., 1468., 1469., 1470.,
      1471., 1472., 1473., 1474., 1475., 1476., 1477., 1478., 1479., 1480.,
      1481., 1482., 1483., 1484., 1485., 1486., 1487., 1488., 1485., 1486.,
      1487., 1488., 1485., 1486., 1487., 1488., 1485., 1486., 1487., 1488.,
      1485., 1486., 1487., 1488., 1485., 1486., 1487., 1488., 1509., 1510.,
      1511., 1512., 1513., 1514., 1515., 1516., 1517., 1518., 1519., 1520.,
      1521., 1522., 1523., 1524., 1525., 1526., 1527., 1528., 1529., 1530.,
      1531., 1532., 1533., 1534., 1535., 1536., 1533., 1534., 1535., 1536.,
      1533., 1534., 1535., 1536., 1533., 1534., 1535., 1536., 1533., 1534.,
      1535., 1536., 1533., 1534., 1535., 1536., 1557., 1558., 1559., 1560.,
      1561., 1562., 1563., 1564., 1565., 1566., 1567., 1568., 1569., 1570.,
      1571., 1572., 1573., 1574., 1575., 1576., 1577., 1578., 1579., 1580.,
      1581., 1582., 1583., 1584., 1581., 1582., 1583., 1584., 1581., 1582.,
      1583., 1584., 1581., 1582., 1583., 1584., 1581., 1582., 1583., 1584.,
      1581., 1582., 1583., 1584., 1605., 1606., 1607., 1608., 1609., 1610.,
      1611., 1612., 1613., 1614., 1615., 1616., 1617., 1618., 1619., 1620.,
      1621., 1622., 1623., 1624., 1625., 1626., 1627., 1628., 1629., 1630.,
      1631., 1632., 1629., 1630., 1631., 1632., 1629., 1630., 1631., 1632.,
      1629., 1630., 1631., 1632., 1629., 1630., 1631., 1632., 1629., 1630.,
      1631., 1632., 1653., 1654., 1655., 1656., 1657., 1658., 1659., 1660.,
      1661., 1662., 1663., 1664., 1665., 1666., 1667., 1668., 1669., 1670.,
      1671., 1672., 1673., 1674., 1675., 1676., 1677., 1678., 1679., 1680.,
      1677., 1678., 1679., 1680., 1677., 1678., 1679., 1680., 1677., 1678.,
      1679., 1680., 1677., 1678., 1679., 1680., 1677., 1678., 1679., 1680.,
      1701., 1702., 1703., 1704., 1705., 1706., 1707., 1708., 1709., 1710.,
      1711., 1712., 1713., 1714., 1715., 1716., 1717., 1718., 1719., 1720.,
      1721., 1722., 1723., 1724., 1725., 1726., 1727., 1728., 1725., 1726.,
      1727., 1728., 1725., 1726., 1727., 1728., 1725., 1726., 1727., 1728.,
      1725., 1726., 1727., 1728., 1725., 1726., 1727., 1728., 1701., 1702.,
      1703., 1704., 1705., 1706., 1707., 1708., 1709., 1710., 1711., 1712.,
      1713., 1714., 1715., 1716., 1717., 1718., 1719., 1720., 1721., 1722.,
      1723., 1724., 1725., 1726., 1727., 1728., 1725., 1726., 1727., 1728.,
      1725., 1726., 1727., 1728., 1725., 1726., 1727., 1728., 1725., 1726.,
      1727., 1728., 1725., 1726., 1727., 1728., 1701., 1702., 1703., 1704.,
      1705., 1706., 1707., 1708., 1709., 1710., 1711., 1712., 1713., 1714.,
      1715., 1716., 1717., 1718., 1719., 1720., 1721., 1722., 1723., 1724.,
      1725., 1726., 1727., 1728., 1725., 1726., 1727., 1728., 1725., 1726.,
      1727., 1728., 1725., 1726., 1727., 1728., 1725., 1726., 1727., 1728.,
      1725., 1726., 1727., 1728., 1701., 1702., 1703., 1704., 1705., 1706.,
      1707., 1708., 1709., 1710., 1711., 1712., 1713., 1714., 1715., 1716.,
      1717., 1718., 1719., 1720., 1721., 1722., 1723., 1724., 1725., 1726.,
      1727., 1728., 1725., 1726., 1727., 1728., 1725., 1726., 1727., 1728.,
      1725., 1726., 1727., 1728., 1725., 1726., 1727., 1728., 1725., 1726.,
      1727., 1728., 1701., 1702., 1703., 1704., 1705., 1706., 1707., 1708.,
      1709., 1710., 1711., 1712., 1713., 1714., 1715., 1716., 1717., 1718.,
      1719., 1720., 1721., 1722., 1723., 1724., 1725., 1726., 1727., 1728.,
      1725., 1726., 1727., 1728., 1725., 1726., 1727., 1728., 1725., 1726.,
      1727., 1728., 1725., 1726., 1727., 1728., 1725., 1726., 1727., 1728.,
      1701., 1702., 1703., 1704., 1705., 1706., 1707., 1708., 1709., 1710.,
      1711., 1712., 1713., 1714., 1715., 1716., 1717., 1718., 1719., 1720.,
      1721., 1722., 1723., 1724., 1725., 1726., 1727., 1728., 1725., 1726.,
      1727., 1728., 1725., 1726., 1727., 1728., 1725., 1726., 1727., 1728.,
      1725., 1726., 1727., 1728., 1725., 1726., 1727., 1728.};
  const std::array<int, 4> in_shape = {{3, 12, 12, 4}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, VALID3x12x12x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      521.,  522.,  523.,  524.,  525.,  526.,  527.,  528.,  569.,  570.,
      571.,  572.,  573.,  574.,  575.,  576.,  1097., 1098., 1099., 1100.,
      1101., 1102., 1103., 1104., 1145., 1146., 1147., 1148., 1149., 1150.,
      1151., 1152., 1673., 1674., 1675., 1676., 1677., 1678., 1679., 1680.,
      1721., 1722., 1723., 1724., 1725., 1726., 1727., 1728.};
  const std::array<int, 4> in_shape = {{3, 12, 12, 4}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, SAME3x12x13x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      71.,  72.,  73.,  74.,  75.,  76.,  77.,  78.,  78.,  78.,  78.,  78.,
      78.,  84.,  85.,  86.,  87.,  88.,  89.,  90.,  91.,  91.,  91.,  91.,
      91.,  91.,  97.,  98.,  99.,  100., 101., 102., 103., 104., 104., 104.,
      104., 104., 104., 110., 111., 112., 113., 114., 115., 116., 117., 117.,
      117., 117., 117., 117., 123., 124., 125., 126., 127., 128., 129., 130.,
      130., 130., 130., 130., 130., 136., 137., 138., 139., 140., 141., 142.,
      143., 143., 143., 143., 143., 143., 149., 150., 151., 152., 153., 154.,
      155., 156., 156., 156., 156., 156., 156., 149., 150., 151., 152., 153.,
      154., 155., 156., 156., 156., 156., 156., 156., 149., 150., 151., 152.,
      153., 154., 155., 156., 156., 156., 156., 156., 156., 149., 150., 151.,
      152., 153., 154., 155., 156., 156., 156., 156., 156., 156., 149., 150.,
      151., 152., 153., 154., 155., 156., 156., 156., 156., 156., 156., 149.,
      150., 151., 152., 153., 154., 155., 156., 156., 156., 156., 156., 156.,
      227., 228., 229., 230., 231., 232., 233., 234., 234., 234., 234., 234.,
      234., 240., 241., 242., 243., 244., 245., 246., 247., 247., 247., 247.,
      247., 247., 253., 254., 255., 256., 257., 258., 259., 260., 260., 260.,
      260., 260., 260., 266., 267., 268., 269., 270., 271., 272., 273., 273.,
      273., 273., 273., 273., 279., 280., 281., 282., 283., 284., 285., 286.,
      286., 286., 286., 286., 286., 292., 293., 294., 295., 296., 297., 298.,
      299., 299., 299., 299., 299., 299., 305., 306., 307., 308., 309., 310.,
      311., 312., 312., 312., 312., 312., 312., 305., 306., 307., 308., 309.,
      310., 311., 312., 312., 312., 312., 312., 312., 305., 306., 307., 308.,
      309., 310., 311., 312., 312., 312., 312., 312., 312., 305., 306., 307.,
      308., 309., 310., 311., 312., 312., 312., 312., 312., 312., 305., 306.,
      307., 308., 309., 310., 311., 312., 312., 312., 312., 312., 312., 305.,
      306., 307., 308., 309., 310., 311., 312., 312., 312., 312., 312., 312.,
      383., 384., 385., 386., 387., 388., 389., 390., 390., 390., 390., 390.,
      390., 396., 397., 398., 399., 400., 401., 402., 403., 403., 403., 403.,
      403., 403., 409., 410., 411., 412., 413., 414., 415., 416., 416., 416.,
      416., 416., 416., 422., 423., 424., 425., 426., 427., 428., 429., 429.,
      429., 429., 429., 429., 435., 436., 437., 438., 439., 440., 441., 442.,
      442., 442., 442., 442., 442., 448., 449., 450., 451., 452., 453., 454.,
      455., 455., 455., 455., 455., 455., 461., 462., 463., 464., 465., 466.,
      467., 468., 468., 468., 468., 468., 468., 461., 462., 463., 464., 465.,
      466., 467., 468., 468., 468., 468., 468., 468., 461., 462., 463., 464.,
      465., 466., 467., 468., 468., 468., 468., 468., 468., 461., 462., 463.,
      464., 465., 466., 467., 468., 468., 468., 468., 468., 468., 461., 462.,
      463., 464., 465., 466., 467., 468., 468., 468., 468., 468., 468., 461.,
      462., 463., 464., 465., 466., 467., 468., 468., 468., 468., 468., 468.};
  const std::array<int, 4> in_shape = {{3, 12, 13, 1}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, VALID3x12x13x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {141., 142., 143., 154., 155., 156.,
                                         297., 298., 299., 310., 311., 312.,
                                         453., 454., 455., 466., 467., 468.};
  const std::array<int, 4> in_shape = {{3, 12, 13, 1}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, SAME3x12x13x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      141., 142., 143., 144., 145., 146., 147., 148., 149., 150., 151., 152.,
      153., 154., 155., 156., 155., 156., 155., 156., 155., 156., 155., 156.,
      155., 156., 167., 168., 169., 170., 171., 172., 173., 174., 175., 176.,
      177., 178., 179., 180., 181., 182., 181., 182., 181., 182., 181., 182.,
      181., 182., 181., 182., 193., 194., 195., 196., 197., 198., 199., 200.,
      201., 202., 203., 204., 205., 206., 207., 208., 207., 208., 207., 208.,
      207., 208., 207., 208., 207., 208., 219., 220., 221., 222., 223., 224.,
      225., 226., 227., 228., 229., 230., 231., 232., 233., 234., 233., 234.,
      233., 234., 233., 234., 233., 234., 233., 234., 245., 246., 247., 248.,
      249., 250., 251., 252., 253., 254., 255., 256., 257., 258., 259., 260.,
      259., 260., 259., 260., 259., 260., 259., 260., 259., 260., 271., 272.,
      273., 274., 275., 276., 277., 278., 279., 280., 281., 282., 283., 284.,
      285., 286., 285., 286., 285., 286., 285., 286., 285., 286., 285., 286.,
      297., 298., 299., 300., 301., 302., 303., 304., 305., 306., 307., 308.,
      309., 310., 311., 312., 311., 312., 311., 312., 311., 312., 311., 312.,
      311., 312., 297., 298., 299., 300., 301., 302., 303., 304., 305., 306.,
      307., 308., 309., 310., 311., 312., 311., 312., 311., 312., 311., 312.,
      311., 312., 311., 312., 297., 298., 299., 300., 301., 302., 303., 304.,
      305., 306., 307., 308., 309., 310., 311., 312., 311., 312., 311., 312.,
      311., 312., 311., 312., 311., 312., 297., 298., 299., 300., 301., 302.,
      303., 304., 305., 306., 307., 308., 309., 310., 311., 312., 311., 312.,
      311., 312., 311., 312., 311., 312., 311., 312., 297., 298., 299., 300.,
      301., 302., 303., 304., 305., 306., 307., 308., 309., 310., 311., 312.,
      311., 312., 311., 312., 311., 312., 311., 312., 311., 312., 297., 298.,
      299., 300., 301., 302., 303., 304., 305., 306., 307., 308., 309., 310.,
      311., 312., 311., 312., 311., 312., 311., 312., 311., 312., 311., 312.,
      453., 454., 455., 456., 457., 458., 459., 460., 461., 462., 463., 464.,
      465., 466., 467., 468., 467., 468., 467., 468., 467., 468., 467., 468.,
      467., 468., 479., 480., 481., 482., 483., 484., 485., 486., 487., 488.,
      489., 490., 491., 492., 493., 494., 493., 494., 493., 494., 493., 494.,
      493., 494., 493., 494., 505., 506., 507., 508., 509., 510., 511., 512.,
      513., 514., 515., 516., 517., 518., 519., 520., 519., 520., 519., 520.,
      519., 520., 519., 520., 519., 520., 531., 532., 533., 534., 535., 536.,
      537., 538., 539., 540., 541., 542., 543., 544., 545., 546., 545., 546.,
      545., 546., 545., 546., 545., 546., 545., 546., 557., 558., 559., 560.,
      561., 562., 563., 564., 565., 566., 567., 568., 569., 570., 571., 572.,
      571., 572., 571., 572., 571., 572., 571., 572., 571., 572., 583., 584.,
      585., 586., 587., 588., 589., 590., 591., 592., 593., 594., 595., 596.,
      597., 598., 597., 598., 597., 598., 597., 598., 597., 598., 597., 598.,
      609., 610., 611., 612., 613., 614., 615., 616., 617., 618., 619., 620.,
      621., 622., 623., 624., 623., 624., 623., 624., 623., 624., 623., 624.,
      623., 624., 609., 610., 611., 612., 613., 614., 615., 616., 617., 618.,
      619., 620., 621., 622., 623., 624., 623., 624., 623., 624., 623., 624.,
      623., 624., 623., 624., 609., 610., 611., 612., 613., 614., 615., 616.,
      617., 618., 619., 620., 621., 622., 623., 624., 623., 624., 623., 624.,
      623., 624., 623., 624., 623., 624., 609., 610., 611., 612., 613., 614.,
      615., 616., 617., 618., 619., 620., 621., 622., 623., 624., 623., 624.,
      623., 624., 623., 624., 623., 624., 623., 624., 609., 610., 611., 612.,
      613., 614., 615., 616., 617., 618., 619., 620., 621., 622., 623., 624.,
      623., 624., 623., 624., 623., 624., 623., 624., 623., 624., 609., 610.,
      611., 612., 613., 614., 615., 616., 617., 618., 619., 620., 621., 622.,
      623., 624., 623., 624., 623., 624., 623., 624., 623., 624., 623., 624.,
      765., 766., 767., 768., 769., 770., 771., 772., 773., 774., 775., 776.,
      777., 778., 779., 780., 779., 780., 779., 780., 779., 780., 779., 780.,
      779., 780., 791., 792., 793., 794., 795., 796., 797., 798., 799., 800.,
      801., 802., 803., 804., 805., 806., 805., 806., 805., 806., 805., 806.,
      805., 806., 805., 806., 817., 818., 819., 820., 821., 822., 823., 824.,
      825., 826., 827., 828., 829., 830., 831., 832., 831., 832., 831., 832.,
      831., 832., 831., 832., 831., 832., 843., 844., 845., 846., 847., 848.,
      849., 850., 851., 852., 853., 854., 855., 856., 857., 858., 857., 858.,
      857., 858., 857., 858., 857., 858., 857., 858., 869., 870., 871., 872.,
      873., 874., 875., 876., 877., 878., 879., 880., 881., 882., 883., 884.,
      883., 884., 883., 884., 883., 884., 883., 884., 883., 884., 895., 896.,
      897., 898., 899., 900., 901., 902., 903., 904., 905., 906., 907., 908.,
      909., 910., 909., 910., 909., 910., 909., 910., 909., 910., 909., 910.,
      921., 922., 923., 924., 925., 926., 927., 928., 929., 930., 931., 932.,
      933., 934., 935., 936., 935., 936., 935., 936., 935., 936., 935., 936.,
      935., 936., 921., 922., 923., 924., 925., 926., 927., 928., 929., 930.,
      931., 932., 933., 934., 935., 936., 935., 936., 935., 936., 935., 936.,
      935., 936., 935., 936., 921., 922., 923., 924., 925., 926., 927., 928.,
      929., 930., 931., 932., 933., 934., 935., 936., 935., 936., 935., 936.,
      935., 936., 935., 936., 935., 936., 921., 922., 923., 924., 925., 926.,
      927., 928., 929., 930., 931., 932., 933., 934., 935., 936., 935., 936.,
      935., 936., 935., 936., 935., 936., 935., 936., 921., 922., 923., 924.,
      925., 926., 927., 928., 929., 930., 931., 932., 933., 934., 935., 936.,
      935., 936., 935., 936., 935., 936., 935., 936., 935., 936., 921., 922.,
      923., 924., 925., 926., 927., 928., 929., 930., 931., 932., 933., 934.,
      935., 936., 935., 936., 935., 936., 935., 936., 935., 936., 935., 936.};
  const std::array<int, 4> in_shape = {{3, 12, 13, 2}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, VALID3x12x13x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      281., 282., 283., 284., 285., 286., 307., 308., 309., 310., 311., 312.,
      593., 594., 595., 596., 597., 598., 619., 620., 621., 622., 623., 624.,
      905., 906., 907., 908., 909., 910., 931., 932., 933., 934., 935., 936.};
  const std::array<int, 4> in_shape = {{3, 12, 13, 2}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, SAME3x12x13x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      281.,  282.,  283.,  284.,  285.,  286.,  287.,  288.,  289.,  290.,
      291.,  292.,  293.,  294.,  295.,  296.,  297.,  298.,  299.,  300.,
      301.,  302.,  303.,  304.,  305.,  306.,  307.,  308.,  309.,  310.,
      311.,  312.,  309.,  310.,  311.,  312.,  309.,  310.,  311.,  312.,
      309.,  310.,  311.,  312.,  309.,  310.,  311.,  312.,  309.,  310.,
      311.,  312.,  333.,  334.,  335.,  336.,  337.,  338.,  339.,  340.,
      341.,  342.,  343.,  344.,  345.,  346.,  347.,  348.,  349.,  350.,
      351.,  352.,  353.,  354.,  355.,  356.,  357.,  358.,  359.,  360.,
      361.,  362.,  363.,  364.,  361.,  362.,  363.,  364.,  361.,  362.,
      363.,  364.,  361.,  362.,  363.,  364.,  361.,  362.,  363.,  364.,
      361.,  362.,  363.,  364.,  385.,  386.,  387.,  388.,  389.,  390.,
      391.,  392.,  393.,  394.,  395.,  396.,  397.,  398.,  399.,  400.,
      401.,  402.,  403.,  404.,  405.,  406.,  407.,  408.,  409.,  410.,
      411.,  412.,  413.,  414.,  415.,  416.,  413.,  414.,  415.,  416.,
      413.,  414.,  415.,  416.,  413.,  414.,  415.,  416.,  413.,  414.,
      415.,  416.,  413.,  414.,  415.,  416.,  437.,  438.,  439.,  440.,
      441.,  442.,  443.,  444.,  445.,  446.,  447.,  448.,  449.,  450.,
      451.,  452.,  453.,  454.,  455.,  456.,  457.,  458.,  459.,  460.,
      461.,  462.,  463.,  464.,  465.,  466.,  467.,  468.,  465.,  466.,
      467.,  468.,  465.,  466.,  467.,  468.,  465.,  466.,  467.,  468.,
      465.,  466.,  467.,  468.,  465.,  466.,  467.,  468.,  489.,  490.,
      491.,  492.,  493.,  494.,  495.,  496.,  497.,  498.,  499.,  500.,
      501.,  502.,  503.,  504.,  505.,  506.,  507.,  508.,  509.,  510.,
      511.,  512.,  513.,  514.,  515.,  516.,  517.,  518.,  519.,  520.,
      517.,  518.,  519.,  520.,  517.,  518.,  519.,  520.,  517.,  518.,
      519.,  520.,  517.,  518.,  519.,  520.,  517.,  518.,  519.,  520.,
      541.,  542.,  543.,  544.,  545.,  546.,  547.,  548.,  549.,  550.,
      551.,  552.,  553.,  554.,  555.,  556.,  557.,  558.,  559.,  560.,
      561.,  562.,  563.,  564.,  565.,  566.,  567.,  568.,  569.,  570.,
      571.,  572.,  569.,  570.,  571.,  572.,  569.,  570.,  571.,  572.,
      569.,  570.,  571.,  572.,  569.,  570.,  571.,  572.,  569.,  570.,
      571.,  572.,  593.,  594.,  595.,  596.,  597.,  598.,  599.,  600.,
      601.,  602.,  603.,  604.,  605.,  606.,  607.,  608.,  609.,  610.,
      611.,  612.,  613.,  614.,  615.,  616.,  617.,  618.,  619.,  620.,
      621.,  622.,  623.,  624.,  621.,  622.,  623.,  624.,  621.,  622.,
      623.,  624.,  621.,  622.,  623.,  624.,  621.,  622.,  623.,  624.,
      621.,  622.,  623.,  624.,  593.,  594.,  595.,  596.,  597.,  598.,
      599.,  600.,  601.,  602.,  603.,  604.,  605.,  606.,  607.,  608.,
      609.,  610.,  611.,  612.,  613.,  614.,  615.,  616.,  617.,  618.,
      619.,  620.,  621.,  622.,  623.,  624.,  621.,  622.,  623.,  624.,
      621.,  622.,  623.,  624.,  621.,  622.,  623.,  624.,  621.,  622.,
      623.,  624.,  621.,  622.,  623.,  624.,  593.,  594.,  595.,  596.,
      597.,  598.,  599.,  600.,  601.,  602.,  603.,  604.,  605.,  606.,
      607.,  608.,  609.,  610.,  611.,  612.,  613.,  614.,  615.,  616.,
      617.,  618.,  619.,  620.,  621.,  622.,  623.,  624.,  621.,  622.,
      623.,  624.,  621.,  622.,  623.,  624.,  621.,  622.,  623.,  624.,
      621.,  622.,  623.,  624.,  621.,  622.,  623.,  624.,  593.,  594.,
      595.,  596.,  597.,  598.,  599.,  600.,  601.,  602.,  603.,  604.,
      605.,  606.,  607.,  608.,  609.,  610.,  611.,  612.,  613.,  614.,
      615.,  616.,  617.,  618.,  619.,  620.,  621.,  622.,  623.,  624.,
      621.,  622.,  623.,  624.,  621.,  622.,  623.,  624.,  621.,  622.,
      623.,  624.,  621.,  622.,  623.,  624.,  621.,  622.,  623.,  624.,
      593.,  594.,  595.,  596.,  597.,  598.,  599.,  600.,  601.,  602.,
      603.,  604.,  605.,  606.,  607.,  608.,  609.,  610.,  611.,  612.,
      613.,  614.,  615.,  616.,  617.,  618.,  619.,  620.,  621.,  622.,
      623.,  624.,  621.,  622.,  623.,  624.,  621.,  622.,  623.,  624.,
      621.,  622.,  623.,  624.,  621.,  622.,  623.,  624.,  621.,  622.,
      623.,  624.,  593.,  594.,  595.,  596.,  597.,  598.,  599.,  600.,
      601.,  602.,  603.,  604.,  605.,  606.,  607.,  608.,  609.,  610.,
      611.,  612.,  613.,  614.,  615.,  616.,  617.,  618.,  619.,  620.,
      621.,  622.,  623.,  624.,  621.,  622.,  623.,  624.,  621.,  622.,
      623.,  624.,  621.,  622.,  623.,  624.,  621.,  622.,  623.,  624.,
      621.,  622.,  623.,  624.,  905.,  906.,  907.,  908.,  909.,  910.,
      911.,  912.,  913.,  914.,  915.,  916.,  917.,  918.,  919.,  920.,
      921.,  922.,  923.,  924.,  925.,  926.,  927.,  928.,  929.,  930.,
      931.,  932.,  933.,  934.,  935.,  936.,  933.,  934.,  935.,  936.,
      933.,  934.,  935.,  936.,  933.,  934.,  935.,  936.,  933.,  934.,
      935.,  936.,  933.,  934.,  935.,  936.,  957.,  958.,  959.,  960.,
      961.,  962.,  963.,  964.,  965.,  966.,  967.,  968.,  969.,  970.,
      971.,  972.,  973.,  974.,  975.,  976.,  977.,  978.,  979.,  980.,
      981.,  982.,  983.,  984.,  985.,  986.,  987.,  988.,  985.,  986.,
      987.,  988.,  985.,  986.,  987.,  988.,  985.,  986.,  987.,  988.,
      985.,  986.,  987.,  988.,  985.,  986.,  987.,  988.,  1009., 1010.,
      1011., 1012., 1013., 1014., 1015., 1016., 1017., 1018., 1019., 1020.,
      1021., 1022., 1023., 1024., 1025., 1026., 1027., 1028., 1029., 1030.,
      1031., 1032., 1033., 1034., 1035., 1036., 1037., 1038., 1039., 1040.,
      1037., 1038., 1039., 1040., 1037., 1038., 1039., 1040., 1037., 1038.,
      1039., 1040., 1037., 1038., 1039., 1040., 1037., 1038., 1039., 1040.,
      1061., 1062., 1063., 1064., 1065., 1066., 1067., 1068., 1069., 1070.,
      1071., 1072., 1073., 1074., 1075., 1076., 1077., 1078., 1079., 1080.,
      1081., 1082., 1083., 1084., 1085., 1086., 1087., 1088., 1089., 1090.,
      1091., 1092., 1089., 1090., 1091., 1092., 1089., 1090., 1091., 1092.,
      1089., 1090., 1091., 1092., 1089., 1090., 1091., 1092., 1089., 1090.,
      1091., 1092., 1113., 1114., 1115., 1116., 1117., 1118., 1119., 1120.,
      1121., 1122., 1123., 1124., 1125., 1126., 1127., 1128., 1129., 1130.,
      1131., 1132., 1133., 1134., 1135., 1136., 1137., 1138., 1139., 1140.,
      1141., 1142., 1143., 1144., 1141., 1142., 1143., 1144., 1141., 1142.,
      1143., 1144., 1141., 1142., 1143., 1144., 1141., 1142., 1143., 1144.,
      1141., 1142., 1143., 1144., 1165., 1166., 1167., 1168., 1169., 1170.,
      1171., 1172., 1173., 1174., 1175., 1176., 1177., 1178., 1179., 1180.,
      1181., 1182., 1183., 1184., 1185., 1186., 1187., 1188., 1189., 1190.,
      1191., 1192., 1193., 1194., 1195., 1196., 1193., 1194., 1195., 1196.,
      1193., 1194., 1195., 1196., 1193., 1194., 1195., 1196., 1193., 1194.,
      1195., 1196., 1193., 1194., 1195., 1196., 1217., 1218., 1219., 1220.,
      1221., 1222., 1223., 1224., 1225., 1226., 1227., 1228., 1229., 1230.,
      1231., 1232., 1233., 1234., 1235., 1236., 1237., 1238., 1239., 1240.,
      1241., 1242., 1243., 1244., 1245., 1246., 1247., 1248., 1245., 1246.,
      1247., 1248., 1245., 1246., 1247., 1248., 1245., 1246., 1247., 1248.,
      1245., 1246., 1247., 1248., 1245., 1246., 1247., 1248., 1217., 1218.,
      1219., 1220., 1221., 1222., 1223., 1224., 1225., 1226., 1227., 1228.,
      1229., 1230., 1231., 1232., 1233., 1234., 1235., 1236., 1237., 1238.,
      1239., 1240., 1241., 1242., 1243., 1244., 1245., 1246., 1247., 1248.,
      1245., 1246., 1247., 1248., 1245., 1246., 1247., 1248., 1245., 1246.,
      1247., 1248., 1245., 1246., 1247., 1248., 1245., 1246., 1247., 1248.,
      1217., 1218., 1219., 1220., 1221., 1222., 1223., 1224., 1225., 1226.,
      1227., 1228., 1229., 1230., 1231., 1232., 1233., 1234., 1235., 1236.,
      1237., 1238., 1239., 1240., 1241., 1242., 1243., 1244., 1245., 1246.,
      1247., 1248., 1245., 1246., 1247., 1248., 1245., 1246., 1247., 1248.,
      1245., 1246., 1247., 1248., 1245., 1246., 1247., 1248., 1245., 1246.,
      1247., 1248., 1217., 1218., 1219., 1220., 1221., 1222., 1223., 1224.,
      1225., 1226., 1227., 1228., 1229., 1230., 1231., 1232., 1233., 1234.,
      1235., 1236., 1237., 1238., 1239., 1240., 1241., 1242., 1243., 1244.,
      1245., 1246., 1247., 1248., 1245., 1246., 1247., 1248., 1245., 1246.,
      1247., 1248., 1245., 1246., 1247., 1248., 1245., 1246., 1247., 1248.,
      1245., 1246., 1247., 1248., 1217., 1218., 1219., 1220., 1221., 1222.,
      1223., 1224., 1225., 1226., 1227., 1228., 1229., 1230., 1231., 1232.,
      1233., 1234., 1235., 1236., 1237., 1238., 1239., 1240., 1241., 1242.,
      1243., 1244., 1245., 1246., 1247., 1248., 1245., 1246., 1247., 1248.,
      1245., 1246., 1247., 1248., 1245., 1246., 1247., 1248., 1245., 1246.,
      1247., 1248., 1245., 1246., 1247., 1248., 1217., 1218., 1219., 1220.,
      1221., 1222., 1223., 1224., 1225., 1226., 1227., 1228., 1229., 1230.,
      1231., 1232., 1233., 1234., 1235., 1236., 1237., 1238., 1239., 1240.,
      1241., 1242., 1243., 1244., 1245., 1246., 1247., 1248., 1245., 1246.,
      1247., 1248., 1245., 1246., 1247., 1248., 1245., 1246., 1247., 1248.,
      1245., 1246., 1247., 1248., 1245., 1246., 1247., 1248., 1529., 1530.,
      1531., 1532., 1533., 1534., 1535., 1536., 1537., 1538., 1539., 1540.,
      1541., 1542., 1543., 1544., 1545., 1546., 1547., 1548., 1549., 1550.,
      1551., 1552., 1553., 1554., 1555., 1556., 1557., 1558., 1559., 1560.,
      1557., 1558., 1559., 1560., 1557., 1558., 1559., 1560., 1557., 1558.,
      1559., 1560., 1557., 1558., 1559., 1560., 1557., 1558., 1559., 1560.,
      1581., 1582., 1583., 1584., 1585., 1586., 1587., 1588., 1589., 1590.,
      1591., 1592., 1593., 1594., 1595., 1596., 1597., 1598., 1599., 1600.,
      1601., 1602., 1603., 1604., 1605., 1606., 1607., 1608., 1609., 1610.,
      1611., 1612., 1609., 1610., 1611., 1612., 1609., 1610., 1611., 1612.,
      1609., 1610., 1611., 1612., 1609., 1610., 1611., 1612., 1609., 1610.,
      1611., 1612., 1633., 1634., 1635., 1636., 1637., 1638., 1639., 1640.,
      1641., 1642., 1643., 1644., 1645., 1646., 1647., 1648., 1649., 1650.,
      1651., 1652., 1653., 1654., 1655., 1656., 1657., 1658., 1659., 1660.,
      1661., 1662., 1663., 1664., 1661., 1662., 1663., 1664., 1661., 1662.,
      1663., 1664., 1661., 1662., 1663., 1664., 1661., 1662., 1663., 1664.,
      1661., 1662., 1663., 1664., 1685., 1686., 1687., 1688., 1689., 1690.,
      1691., 1692., 1693., 1694., 1695., 1696., 1697., 1698., 1699., 1700.,
      1701., 1702., 1703., 1704., 1705., 1706., 1707., 1708., 1709., 1710.,
      1711., 1712., 1713., 1714., 1715., 1716., 1713., 1714., 1715., 1716.,
      1713., 1714., 1715., 1716., 1713., 1714., 1715., 1716., 1713., 1714.,
      1715., 1716., 1713., 1714., 1715., 1716., 1737., 1738., 1739., 1740.,
      1741., 1742., 1743., 1744., 1745., 1746., 1747., 1748., 1749., 1750.,
      1751., 1752., 1753., 1754., 1755., 1756., 1757., 1758., 1759., 1760.,
      1761., 1762., 1763., 1764., 1765., 1766., 1767., 1768., 1765., 1766.,
      1767., 1768., 1765., 1766., 1767., 1768., 1765., 1766., 1767., 1768.,
      1765., 1766., 1767., 1768., 1765., 1766., 1767., 1768., 1789., 1790.,
      1791., 1792., 1793., 1794., 1795., 1796., 1797., 1798., 1799., 1800.,
      1801., 1802., 1803., 1804., 1805., 1806., 1807., 1808., 1809., 1810.,
      1811., 1812., 1813., 1814., 1815., 1816., 1817., 1818., 1819., 1820.,
      1817., 1818., 1819., 1820., 1817., 1818., 1819., 1820., 1817., 1818.,
      1819., 1820., 1817., 1818., 1819., 1820., 1817., 1818., 1819., 1820.,
      1841., 1842., 1843., 1844., 1845., 1846., 1847., 1848., 1849., 1850.,
      1851., 1852., 1853., 1854., 1855., 1856., 1857., 1858., 1859., 1860.,
      1861., 1862., 1863., 1864., 1865., 1866., 1867., 1868., 1869., 1870.,
      1871., 1872., 1869., 1870., 1871., 1872., 1869., 1870., 1871., 1872.,
      1869., 1870., 1871., 1872., 1869., 1870., 1871., 1872., 1869., 1870.,
      1871., 1872., 1841., 1842., 1843., 1844., 1845., 1846., 1847., 1848.,
      1849., 1850., 1851., 1852., 1853., 1854., 1855., 1856., 1857., 1858.,
      1859., 1860., 1861., 1862., 1863., 1864., 1865., 1866., 1867., 1868.,
      1869., 1870., 1871., 1872., 1869., 1870., 1871., 1872., 1869., 1870.,
      1871., 1872., 1869., 1870., 1871., 1872., 1869., 1870., 1871., 1872.,
      1869., 1870., 1871., 1872., 1841., 1842., 1843., 1844., 1845., 1846.,
      1847., 1848., 1849., 1850., 1851., 1852., 1853., 1854., 1855., 1856.,
      1857., 1858., 1859., 1860., 1861., 1862., 1863., 1864., 1865., 1866.,
      1867., 1868., 1869., 1870., 1871., 1872., 1869., 1870., 1871., 1872.,
      1869., 1870., 1871., 1872., 1869., 1870., 1871., 1872., 1869., 1870.,
      1871., 1872., 1869., 1870., 1871., 1872., 1841., 1842., 1843., 1844.,
      1845., 1846., 1847., 1848., 1849., 1850., 1851., 1852., 1853., 1854.,
      1855., 1856., 1857., 1858., 1859., 1860., 1861., 1862., 1863., 1864.,
      1865., 1866., 1867., 1868., 1869., 1870., 1871., 1872., 1869., 1870.,
      1871., 1872., 1869., 1870., 1871., 1872., 1869., 1870., 1871., 1872.,
      1869., 1870., 1871., 1872., 1869., 1870., 1871., 1872., 1841., 1842.,
      1843., 1844., 1845., 1846., 1847., 1848., 1849., 1850., 1851., 1852.,
      1853., 1854., 1855., 1856., 1857., 1858., 1859., 1860., 1861., 1862.,
      1863., 1864., 1865., 1866., 1867., 1868., 1869., 1870., 1871., 1872.,
      1869., 1870., 1871., 1872., 1869., 1870., 1871., 1872., 1869., 1870.,
      1871., 1872., 1869., 1870., 1871., 1872., 1869., 1870., 1871., 1872.,
      1841., 1842., 1843., 1844., 1845., 1846., 1847., 1848., 1849., 1850.,
      1851., 1852., 1853., 1854., 1855., 1856., 1857., 1858., 1859., 1860.,
      1861., 1862., 1863., 1864., 1865., 1866., 1867., 1868., 1869., 1870.,
      1871., 1872., 1869., 1870., 1871., 1872., 1869., 1870., 1871., 1872.,
      1869., 1870., 1871., 1872., 1869., 1870., 1871., 1872., 1869., 1870.,
      1871., 1872.};
  const std::array<int, 4> in_shape = {{3, 12, 13, 4}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, VALID3x12x13x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      561.,  562.,  563.,  564.,  565.,  566.,  567.,  568.,  569.,
      570.,  571.,  572.,  613.,  614.,  615.,  616.,  617.,  618.,
      619.,  620.,  621.,  622.,  623.,  624.,  1185., 1186., 1187.,
      1188., 1189., 1190., 1191., 1192., 1193., 1194., 1195., 1196.,
      1237., 1238., 1239., 1240., 1241., 1242., 1243., 1244., 1245.,
      1246., 1247., 1248., 1809., 1810., 1811., 1812., 1813., 1814.,
      1815., 1816., 1817., 1818., 1819., 1820., 1861., 1862., 1863.,
      1864., 1865., 1866., 1867., 1868., 1869., 1870., 1871., 1872.};
  const std::array<int, 4> in_shape = {{3, 12, 13, 4}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, SAME3x12x14x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      76.,  77.,  78.,  79.,  80.,  81.,  82.,  83.,  84.,  84.,  84.,  84.,
      84.,  84.,  90.,  91.,  92.,  93.,  94.,  95.,  96.,  97.,  98.,  98.,
      98.,  98.,  98.,  98.,  104., 105., 106., 107., 108., 109., 110., 111.,
      112., 112., 112., 112., 112., 112., 118., 119., 120., 121., 122., 123.,
      124., 125., 126., 126., 126., 126., 126., 126., 132., 133., 134., 135.,
      136., 137., 138., 139., 140., 140., 140., 140., 140., 140., 146., 147.,
      148., 149., 150., 151., 152., 153., 154., 154., 154., 154., 154., 154.,
      160., 161., 162., 163., 164., 165., 166., 167., 168., 168., 168., 168.,
      168., 168., 160., 161., 162., 163., 164., 165., 166., 167., 168., 168.,
      168., 168., 168., 168., 160., 161., 162., 163., 164., 165., 166., 167.,
      168., 168., 168., 168., 168., 168., 160., 161., 162., 163., 164., 165.,
      166., 167., 168., 168., 168., 168., 168., 168., 160., 161., 162., 163.,
      164., 165., 166., 167., 168., 168., 168., 168., 168., 168., 160., 161.,
      162., 163., 164., 165., 166., 167., 168., 168., 168., 168., 168., 168.,
      244., 245., 246., 247., 248., 249., 250., 251., 252., 252., 252., 252.,
      252., 252., 258., 259., 260., 261., 262., 263., 264., 265., 266., 266.,
      266., 266., 266., 266., 272., 273., 274., 275., 276., 277., 278., 279.,
      280., 280., 280., 280., 280., 280., 286., 287., 288., 289., 290., 291.,
      292., 293., 294., 294., 294., 294., 294., 294., 300., 301., 302., 303.,
      304., 305., 306., 307., 308., 308., 308., 308., 308., 308., 314., 315.,
      316., 317., 318., 319., 320., 321., 322., 322., 322., 322., 322., 322.,
      328., 329., 330., 331., 332., 333., 334., 335., 336., 336., 336., 336.,
      336., 336., 328., 329., 330., 331., 332., 333., 334., 335., 336., 336.,
      336., 336., 336., 336., 328., 329., 330., 331., 332., 333., 334., 335.,
      336., 336., 336., 336., 336., 336., 328., 329., 330., 331., 332., 333.,
      334., 335., 336., 336., 336., 336., 336., 336., 328., 329., 330., 331.,
      332., 333., 334., 335., 336., 336., 336., 336., 336., 336., 328., 329.,
      330., 331., 332., 333., 334., 335., 336., 336., 336., 336., 336., 336.,
      412., 413., 414., 415., 416., 417., 418., 419., 420., 420., 420., 420.,
      420., 420., 426., 427., 428., 429., 430., 431., 432., 433., 434., 434.,
      434., 434., 434., 434., 440., 441., 442., 443., 444., 445., 446., 447.,
      448., 448., 448., 448., 448., 448., 454., 455., 456., 457., 458., 459.,
      460., 461., 462., 462., 462., 462., 462., 462., 468., 469., 470., 471.,
      472., 473., 474., 475., 476., 476., 476., 476., 476., 476., 482., 483.,
      484., 485., 486., 487., 488., 489., 490., 490., 490., 490., 490., 490.,
      496., 497., 498., 499., 500., 501., 502., 503., 504., 504., 504., 504.,
      504., 504., 496., 497., 498., 499., 500., 501., 502., 503., 504., 504.,
      504., 504., 504., 504., 496., 497., 498., 499., 500., 501., 502., 503.,
      504., 504., 504., 504., 504., 504., 496., 497., 498., 499., 500., 501.,
      502., 503., 504., 504., 504., 504., 504., 504., 496., 497., 498., 499.,
      500., 501., 502., 503., 504., 504., 504., 504., 504., 504., 496., 497.,
      498., 499., 500., 501., 502., 503., 504., 504., 504., 504., 504., 504.};
  const std::array<int, 4> in_shape = {{3, 12, 14, 1}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, VALID3x12x14x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      151., 152., 153., 154., 165., 166., 167., 168., 319., 320., 321., 322.,
      333., 334., 335., 336., 487., 488., 489., 490., 501., 502., 503., 504.};
  const std::array<int, 4> in_shape = {{3, 12, 14, 1}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, SAME3x12x14x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      151.,  152.,  153.,  154.,  155.,  156.,  157.,  158.,  159.,  160.,
      161.,  162.,  163.,  164.,  165.,  166.,  167.,  168.,  167.,  168.,
      167.,  168.,  167.,  168.,  167.,  168.,  167.,  168.,  179.,  180.,
      181.,  182.,  183.,  184.,  185.,  186.,  187.,  188.,  189.,  190.,
      191.,  192.,  193.,  194.,  195.,  196.,  195.,  196.,  195.,  196.,
      195.,  196.,  195.,  196.,  195.,  196.,  207.,  208.,  209.,  210.,
      211.,  212.,  213.,  214.,  215.,  216.,  217.,  218.,  219.,  220.,
      221.,  222.,  223.,  224.,  223.,  224.,  223.,  224.,  223.,  224.,
      223.,  224.,  223.,  224.,  235.,  236.,  237.,  238.,  239.,  240.,
      241.,  242.,  243.,  244.,  245.,  246.,  247.,  248.,  249.,  250.,
      251.,  252.,  251.,  252.,  251.,  252.,  251.,  252.,  251.,  252.,
      251.,  252.,  263.,  264.,  265.,  266.,  267.,  268.,  269.,  270.,
      271.,  272.,  273.,  274.,  275.,  276.,  277.,  278.,  279.,  280.,
      279.,  280.,  279.,  280.,  279.,  280.,  279.,  280.,  279.,  280.,
      291.,  292.,  293.,  294.,  295.,  296.,  297.,  298.,  299.,  300.,
      301.,  302.,  303.,  304.,  305.,  306.,  307.,  308.,  307.,  308.,
      307.,  308.,  307.,  308.,  307.,  308.,  307.,  308.,  319.,  320.,
      321.,  322.,  323.,  324.,  325.,  326.,  327.,  328.,  329.,  330.,
      331.,  332.,  333.,  334.,  335.,  336.,  335.,  336.,  335.,  336.,
      335.,  336.,  335.,  336.,  335.,  336.,  319.,  320.,  321.,  322.,
      323.,  324.,  325.,  326.,  327.,  328.,  329.,  330.,  331.,  332.,
      333.,  334.,  335.,  336.,  335.,  336.,  335.,  336.,  335.,  336.,
      335.,  336.,  335.,  336.,  319.,  320.,  321.,  322.,  323.,  324.,
      325.,  326.,  327.,  328.,  329.,  330.,  331.,  332.,  333.,  334.,
      335.,  336.,  335.,  336.,  335.,  336.,  335.,  336.,  335.,  336.,
      335.,  336.,  319.,  320.,  321.,  322.,  323.,  324.,  325.,  326.,
      327.,  328.,  329.,  330.,  331.,  332.,  333.,  334.,  335.,  336.,
      335.,  336.,  335.,  336.,  335.,  336.,  335.,  336.,  335.,  336.,
      319.,  320.,  321.,  322.,  323.,  324.,  325.,  326.,  327.,  328.,
      329.,  330.,  331.,  332.,  333.,  334.,  335.,  336.,  335.,  336.,
      335.,  336.,  335.,  336.,  335.,  336.,  335.,  336.,  319.,  320.,
      321.,  322.,  323.,  324.,  325.,  326.,  327.,  328.,  329.,  330.,
      331.,  332.,  333.,  334.,  335.,  336.,  335.,  336.,  335.,  336.,
      335.,  336.,  335.,  336.,  335.,  336.,  487.,  488.,  489.,  490.,
      491.,  492.,  493.,  494.,  495.,  496.,  497.,  498.,  499.,  500.,
      501.,  502.,  503.,  504.,  503.,  504.,  503.,  504.,  503.,  504.,
      503.,  504.,  503.,  504.,  515.,  516.,  517.,  518.,  519.,  520.,
      521.,  522.,  523.,  524.,  525.,  526.,  527.,  528.,  529.,  530.,
      531.,  532.,  531.,  532.,  531.,  532.,  531.,  532.,  531.,  532.,
      531.,  532.,  543.,  544.,  545.,  546.,  547.,  548.,  549.,  550.,
      551.,  552.,  553.,  554.,  555.,  556.,  557.,  558.,  559.,  560.,
      559.,  560.,  559.,  560.,  559.,  560.,  559.,  560.,  559.,  560.,
      571.,  572.,  573.,  574.,  575.,  576.,  577.,  578.,  579.,  580.,
      581.,  582.,  583.,  584.,  585.,  586.,  587.,  588.,  587.,  588.,
      587.,  588.,  587.,  588.,  587.,  588.,  587.,  588.,  599.,  600.,
      601.,  602.,  603.,  604.,  605.,  606.,  607.,  608.,  609.,  610.,
      611.,  612.,  613.,  614.,  615.,  616.,  615.,  616.,  615.,  616.,
      615.,  616.,  615.,  616.,  615.,  616.,  627.,  628.,  629.,  630.,
      631.,  632.,  633.,  634.,  635.,  636.,  637.,  638.,  639.,  640.,
      641.,  642.,  643.,  644.,  643.,  644.,  643.,  644.,  643.,  644.,
      643.,  644.,  643.,  644.,  655.,  656.,  657.,  658.,  659.,  660.,
      661.,  662.,  663.,  664.,  665.,  666.,  667.,  668.,  669.,  670.,
      671.,  672.,  671.,  672.,  671.,  672.,  671.,  672.,  671.,  672.,
      671.,  672.,  655.,  656.,  657.,  658.,  659.,  660.,  661.,  662.,
      663.,  664.,  665.,  666.,  667.,  668.,  669.,  670.,  671.,  672.,
      671.,  672.,  671.,  672.,  671.,  672.,  671.,  672.,  671.,  672.,
      655.,  656.,  657.,  658.,  659.,  660.,  661.,  662.,  663.,  664.,
      665.,  666.,  667.,  668.,  669.,  670.,  671.,  672.,  671.,  672.,
      671.,  672.,  671.,  672.,  671.,  672.,  671.,  672.,  655.,  656.,
      657.,  658.,  659.,  660.,  661.,  662.,  663.,  664.,  665.,  666.,
      667.,  668.,  669.,  670.,  671.,  672.,  671.,  672.,  671.,  672.,
      671.,  672.,  671.,  672.,  671.,  672.,  655.,  656.,  657.,  658.,
      659.,  660.,  661.,  662.,  663.,  664.,  665.,  666.,  667.,  668.,
      669.,  670.,  671.,  672.,  671.,  672.,  671.,  672.,  671.,  672.,
      671.,  672.,  671.,  672.,  655.,  656.,  657.,  658.,  659.,  660.,
      661.,  662.,  663.,  664.,  665.,  666.,  667.,  668.,  669.,  670.,
      671.,  672.,  671.,  672.,  671.,  672.,  671.,  672.,  671.,  672.,
      671.,  672.,  823.,  824.,  825.,  826.,  827.,  828.,  829.,  830.,
      831.,  832.,  833.,  834.,  835.,  836.,  837.,  838.,  839.,  840.,
      839.,  840.,  839.,  840.,  839.,  840.,  839.,  840.,  839.,  840.,
      851.,  852.,  853.,  854.,  855.,  856.,  857.,  858.,  859.,  860.,
      861.,  862.,  863.,  864.,  865.,  866.,  867.,  868.,  867.,  868.,
      867.,  868.,  867.,  868.,  867.,  868.,  867.,  868.,  879.,  880.,
      881.,  882.,  883.,  884.,  885.,  886.,  887.,  888.,  889.,  890.,
      891.,  892.,  893.,  894.,  895.,  896.,  895.,  896.,  895.,  896.,
      895.,  896.,  895.,  896.,  895.,  896.,  907.,  908.,  909.,  910.,
      911.,  912.,  913.,  914.,  915.,  916.,  917.,  918.,  919.,  920.,
      921.,  922.,  923.,  924.,  923.,  924.,  923.,  924.,  923.,  924.,
      923.,  924.,  923.,  924.,  935.,  936.,  937.,  938.,  939.,  940.,
      941.,  942.,  943.,  944.,  945.,  946.,  947.,  948.,  949.,  950.,
      951.,  952.,  951.,  952.,  951.,  952.,  951.,  952.,  951.,  952.,
      951.,  952.,  963.,  964.,  965.,  966.,  967.,  968.,  969.,  970.,
      971.,  972.,  973.,  974.,  975.,  976.,  977.,  978.,  979.,  980.,
      979.,  980.,  979.,  980.,  979.,  980.,  979.,  980.,  979.,  980.,
      991.,  992.,  993.,  994.,  995.,  996.,  997.,  998.,  999.,  1000.,
      1001., 1002., 1003., 1004., 1005., 1006., 1007., 1008., 1007., 1008.,
      1007., 1008., 1007., 1008., 1007., 1008., 1007., 1008., 991.,  992.,
      993.,  994.,  995.,  996.,  997.,  998.,  999.,  1000., 1001., 1002.,
      1003., 1004., 1005., 1006., 1007., 1008., 1007., 1008., 1007., 1008.,
      1007., 1008., 1007., 1008., 1007., 1008., 991.,  992.,  993.,  994.,
      995.,  996.,  997.,  998.,  999.,  1000., 1001., 1002., 1003., 1004.,
      1005., 1006., 1007., 1008., 1007., 1008., 1007., 1008., 1007., 1008.,
      1007., 1008., 1007., 1008., 991.,  992.,  993.,  994.,  995.,  996.,
      997.,  998.,  999.,  1000., 1001., 1002., 1003., 1004., 1005., 1006.,
      1007., 1008., 1007., 1008., 1007., 1008., 1007., 1008., 1007., 1008.,
      1007., 1008., 991.,  992.,  993.,  994.,  995.,  996.,  997.,  998.,
      999.,  1000., 1001., 1002., 1003., 1004., 1005., 1006., 1007., 1008.,
      1007., 1008., 1007., 1008., 1007., 1008., 1007., 1008., 1007., 1008.,
      991.,  992.,  993.,  994.,  995.,  996.,  997.,  998.,  999.,  1000.,
      1001., 1002., 1003., 1004., 1005., 1006., 1007., 1008., 1007., 1008.,
      1007., 1008., 1007., 1008., 1007., 1008., 1007., 1008.};
  const std::array<int, 4> in_shape = {{3, 12, 14, 2}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, VALID3x12x14x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      301.,  302.,  303.,  304.,  305.,  306.,  307.,  308., 329., 330.,
      331.,  332.,  333.,  334.,  335.,  336.,  637.,  638., 639., 640.,
      641.,  642.,  643.,  644.,  665.,  666.,  667.,  668., 669., 670.,
      671.,  672.,  973.,  974.,  975.,  976.,  977.,  978., 979., 980.,
      1001., 1002., 1003., 1004., 1005., 1006., 1007., 1008.};
  const std::array<int, 4> in_shape = {{3, 12, 14, 2}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, SAME3x12x14x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      301.,  302.,  303.,  304.,  305.,  306.,  307.,  308.,  309.,  310.,
      311.,  312.,  313.,  314.,  315.,  316.,  317.,  318.,  319.,  320.,
      321.,  322.,  323.,  324.,  325.,  326.,  327.,  328.,  329.,  330.,
      331.,  332.,  333.,  334.,  335.,  336.,  333.,  334.,  335.,  336.,
      333.,  334.,  335.,  336.,  333.,  334.,  335.,  336.,  333.,  334.,
      335.,  336.,  333.,  334.,  335.,  336.,  357.,  358.,  359.,  360.,
      361.,  362.,  363.,  364.,  365.,  366.,  367.,  368.,  369.,  370.,
      371.,  372.,  373.,  374.,  375.,  376.,  377.,  378.,  379.,  380.,
      381.,  382.,  383.,  384.,  385.,  386.,  387.,  388.,  389.,  390.,
      391.,  392.,  389.,  390.,  391.,  392.,  389.,  390.,  391.,  392.,
      389.,  390.,  391.,  392.,  389.,  390.,  391.,  392.,  389.,  390.,
      391.,  392.,  413.,  414.,  415.,  416.,  417.,  418.,  419.,  420.,
      421.,  422.,  423.,  424.,  425.,  426.,  427.,  428.,  429.,  430.,
      431.,  432.,  433.,  434.,  435.,  436.,  437.,  438.,  439.,  440.,
      441.,  442.,  443.,  444.,  445.,  446.,  447.,  448.,  445.,  446.,
      447.,  448.,  445.,  446.,  447.,  448.,  445.,  446.,  447.,  448.,
      445.,  446.,  447.,  448.,  445.,  446.,  447.,  448.,  469.,  470.,
      471.,  472.,  473.,  474.,  475.,  476.,  477.,  478.,  479.,  480.,
      481.,  482.,  483.,  484.,  485.,  486.,  487.,  488.,  489.,  490.,
      491.,  492.,  493.,  494.,  495.,  496.,  497.,  498.,  499.,  500.,
      501.,  502.,  503.,  504.,  501.,  502.,  503.,  504.,  501.,  502.,
      503.,  504.,  501.,  502.,  503.,  504.,  501.,  502.,  503.,  504.,
      501.,  502.,  503.,  504.,  525.,  526.,  527.,  528.,  529.,  530.,
      531.,  532.,  533.,  534.,  535.,  536.,  537.,  538.,  539.,  540.,
      541.,  542.,  543.,  544.,  545.,  546.,  547.,  548.,  549.,  550.,
      551.,  552.,  553.,  554.,  555.,  556.,  557.,  558.,  559.,  560.,
      557.,  558.,  559.,  560.,  557.,  558.,  559.,  560.,  557.,  558.,
      559.,  560.,  557.,  558.,  559.,  560.,  557.,  558.,  559.,  560.,
      581.,  582.,  583.,  584.,  585.,  586.,  587.,  588.,  589.,  590.,
      591.,  592.,  593.,  594.,  595.,  596.,  597.,  598.,  599.,  600.,
      601.,  602.,  603.,  604.,  605.,  606.,  607.,  608.,  609.,  610.,
      611.,  612.,  613.,  614.,  615.,  616.,  613.,  614.,  615.,  616.,
      613.,  614.,  615.,  616.,  613.,  614.,  615.,  616.,  613.,  614.,
      615.,  616.,  613.,  614.,  615.,  616.,  637.,  638.,  639.,  640.,
      641.,  642.,  643.,  644.,  645.,  646.,  647.,  648.,  649.,  650.,
      651.,  652.,  653.,  654.,  655.,  656.,  657.,  658.,  659.,  660.,
      661.,  662.,  663.,  664.,  665.,  666.,  667.,  668.,  669.,  670.,
      671.,  672.,  669.,  670.,  671.,  672.,  669.,  670.,  671.,  672.,
      669.,  670.,  671.,  672.,  669.,  670.,  671.,  672.,  669.,  670.,
      671.,  672.,  637.,  638.,  639.,  640.,  641.,  642.,  643.,  644.,
      645.,  646.,  647.,  648.,  649.,  650.,  651.,  652.,  653.,  654.,
      655.,  656.,  657.,  658.,  659.,  660.,  661.,  662.,  663.,  664.,
      665.,  666.,  667.,  668.,  669.,  670.,  671.,  672.,  669.,  670.,
      671.,  672.,  669.,  670.,  671.,  672.,  669.,  670.,  671.,  672.,
      669.,  670.,  671.,  672.,  669.,  670.,  671.,  672.,  637.,  638.,
      639.,  640.,  641.,  642.,  643.,  644.,  645.,  646.,  647.,  648.,
      649.,  650.,  651.,  652.,  653.,  654.,  655.,  656.,  657.,  658.,
      659.,  660.,  661.,  662.,  663.,  664.,  665.,  666.,  667.,  668.,
      669.,  670.,  671.,  672.,  669.,  670.,  671.,  672.,  669.,  670.,
      671.,  672.,  669.,  670.,  671.,  672.,  669.,  670.,  671.,  672.,
      669.,  670.,  671.,  672.,  637.,  638.,  639.,  640.,  641.,  642.,
      643.,  644.,  645.,  646.,  647.,  648.,  649.,  650.,  651.,  652.,
      653.,  654.,  655.,  656.,  657.,  658.,  659.,  660.,  661.,  662.,
      663.,  664.,  665.,  666.,  667.,  668.,  669.,  670.,  671.,  672.,
      669.,  670.,  671.,  672.,  669.,  670.,  671.,  672.,  669.,  670.,
      671.,  672.,  669.,  670.,  671.,  672.,  669.,  670.,  671.,  672.,
      637.,  638.,  639.,  640.,  641.,  642.,  643.,  644.,  645.,  646.,
      647.,  648.,  649.,  650.,  651.,  652.,  653.,  654.,  655.,  656.,
      657.,  658.,  659.,  660.,  661.,  662.,  663.,  664.,  665.,  666.,
      667.,  668.,  669.,  670.,  671.,  672.,  669.,  670.,  671.,  672.,
      669.,  670.,  671.,  672.,  669.,  670.,  671.,  672.,  669.,  670.,
      671.,  672.,  669.,  670.,  671.,  672.,  637.,  638.,  639.,  640.,
      641.,  642.,  643.,  644.,  645.,  646.,  647.,  648.,  649.,  650.,
      651.,  652.,  653.,  654.,  655.,  656.,  657.,  658.,  659.,  660.,
      661.,  662.,  663.,  664.,  665.,  666.,  667.,  668.,  669.,  670.,
      671.,  672.,  669.,  670.,  671.,  672.,  669.,  670.,  671.,  672.,
      669.,  670.,  671.,  672.,  669.,  670.,  671.,  672.,  669.,  670.,
      671.,  672.,  973.,  974.,  975.,  976.,  977.,  978.,  979.,  980.,
      981.,  982.,  983.,  984.,  985.,  986.,  987.,  988.,  989.,  990.,
      991.,  992.,  993.,  994.,  995.,  996.,  997.,  998.,  999.,  1000.,
      1001., 1002., 1003., 1004., 1005., 1006., 1007., 1008., 1005., 1006.,
      1007., 1008., 1005., 1006., 1007., 1008., 1005., 1006., 1007., 1008.,
      1005., 1006., 1007., 1008., 1005., 1006., 1007., 1008., 1029., 1030.,
      1031., 1032., 1033., 1034., 1035., 1036., 1037., 1038., 1039., 1040.,
      1041., 1042., 1043., 1044., 1045., 1046., 1047., 1048., 1049., 1050.,
      1051., 1052., 1053., 1054., 1055., 1056., 1057., 1058., 1059., 1060.,
      1061., 1062., 1063., 1064., 1061., 1062., 1063., 1064., 1061., 1062.,
      1063., 1064., 1061., 1062., 1063., 1064., 1061., 1062., 1063., 1064.,
      1061., 1062., 1063., 1064., 1085., 1086., 1087., 1088., 1089., 1090.,
      1091., 1092., 1093., 1094., 1095., 1096., 1097., 1098., 1099., 1100.,
      1101., 1102., 1103., 1104., 1105., 1106., 1107., 1108., 1109., 1110.,
      1111., 1112., 1113., 1114., 1115., 1116., 1117., 1118., 1119., 1120.,
      1117., 1118., 1119., 1120., 1117., 1118., 1119., 1120., 1117., 1118.,
      1119., 1120., 1117., 1118., 1119., 1120., 1117., 1118., 1119., 1120.,
      1141., 1142., 1143., 1144., 1145., 1146., 1147., 1148., 1149., 1150.,
      1151., 1152., 1153., 1154., 1155., 1156., 1157., 1158., 1159., 1160.,
      1161., 1162., 1163., 1164., 1165., 1166., 1167., 1168., 1169., 1170.,
      1171., 1172., 1173., 1174., 1175., 1176., 1173., 1174., 1175., 1176.,
      1173., 1174., 1175., 1176., 1173., 1174., 1175., 1176., 1173., 1174.,
      1175., 1176., 1173., 1174., 1175., 1176., 1197., 1198., 1199., 1200.,
      1201., 1202., 1203., 1204., 1205., 1206., 1207., 1208., 1209., 1210.,
      1211., 1212., 1213., 1214., 1215., 1216., 1217., 1218., 1219., 1220.,
      1221., 1222., 1223., 1224., 1225., 1226., 1227., 1228., 1229., 1230.,
      1231., 1232., 1229., 1230., 1231., 1232., 1229., 1230., 1231., 1232.,
      1229., 1230., 1231., 1232., 1229., 1230., 1231., 1232., 1229., 1230.,
      1231., 1232., 1253., 1254., 1255., 1256., 1257., 1258., 1259., 1260.,
      1261., 1262., 1263., 1264., 1265., 1266., 1267., 1268., 1269., 1270.,
      1271., 1272., 1273., 1274., 1275., 1276., 1277., 1278., 1279., 1280.,
      1281., 1282., 1283., 1284., 1285., 1286., 1287., 1288., 1285., 1286.,
      1287., 1288., 1285., 1286., 1287., 1288., 1285., 1286., 1287., 1288.,
      1285., 1286., 1287., 1288., 1285., 1286., 1287., 1288., 1309., 1310.,
      1311., 1312., 1313., 1314., 1315., 1316., 1317., 1318., 1319., 1320.,
      1321., 1322., 1323., 1324., 1325., 1326., 1327., 1328., 1329., 1330.,
      1331., 1332., 1333., 1334., 1335., 1336., 1337., 1338., 1339., 1340.,
      1341., 1342., 1343., 1344., 1341., 1342., 1343., 1344., 1341., 1342.,
      1343., 1344., 1341., 1342., 1343., 1344., 1341., 1342., 1343., 1344.,
      1341., 1342., 1343., 1344., 1309., 1310., 1311., 1312., 1313., 1314.,
      1315., 1316., 1317., 1318., 1319., 1320., 1321., 1322., 1323., 1324.,
      1325., 1326., 1327., 1328., 1329., 1330., 1331., 1332., 1333., 1334.,
      1335., 1336., 1337., 1338., 1339., 1340., 1341., 1342., 1343., 1344.,
      1341., 1342., 1343., 1344., 1341., 1342., 1343., 1344., 1341., 1342.,
      1343., 1344., 1341., 1342., 1343., 1344., 1341., 1342., 1343., 1344.,
      1309., 1310., 1311., 1312., 1313., 1314., 1315., 1316., 1317., 1318.,
      1319., 1320., 1321., 1322., 1323., 1324., 1325., 1326., 1327., 1328.,
      1329., 1330., 1331., 1332., 1333., 1334., 1335., 1336., 1337., 1338.,
      1339., 1340., 1341., 1342., 1343., 1344., 1341., 1342., 1343., 1344.,
      1341., 1342., 1343., 1344., 1341., 1342., 1343., 1344., 1341., 1342.,
      1343., 1344., 1341., 1342., 1343., 1344., 1309., 1310., 1311., 1312.,
      1313., 1314., 1315., 1316., 1317., 1318., 1319., 1320., 1321., 1322.,
      1323., 1324., 1325., 1326., 1327., 1328., 1329., 1330., 1331., 1332.,
      1333., 1334., 1335., 1336., 1337., 1338., 1339., 1340., 1341., 1342.,
      1343., 1344., 1341., 1342., 1343., 1344., 1341., 1342., 1343., 1344.,
      1341., 1342., 1343., 1344., 1341., 1342., 1343., 1344., 1341., 1342.,
      1343., 1344., 1309., 1310., 1311., 1312., 1313., 1314., 1315., 1316.,
      1317., 1318., 1319., 1320., 1321., 1322., 1323., 1324., 1325., 1326.,
      1327., 1328., 1329., 1330., 1331., 1332., 1333., 1334., 1335., 1336.,
      1337., 1338., 1339., 1340., 1341., 1342., 1343., 1344., 1341., 1342.,
      1343., 1344., 1341., 1342., 1343., 1344., 1341., 1342., 1343., 1344.,
      1341., 1342., 1343., 1344., 1341., 1342., 1343., 1344., 1309., 1310.,
      1311., 1312., 1313., 1314., 1315., 1316., 1317., 1318., 1319., 1320.,
      1321., 1322., 1323., 1324., 1325., 1326., 1327., 1328., 1329., 1330.,
      1331., 1332., 1333., 1334., 1335., 1336., 1337., 1338., 1339., 1340.,
      1341., 1342., 1343., 1344., 1341., 1342., 1343., 1344., 1341., 1342.,
      1343., 1344., 1341., 1342., 1343., 1344., 1341., 1342., 1343., 1344.,
      1341., 1342., 1343., 1344., 1645., 1646., 1647., 1648., 1649., 1650.,
      1651., 1652., 1653., 1654., 1655., 1656., 1657., 1658., 1659., 1660.,
      1661., 1662., 1663., 1664., 1665., 1666., 1667., 1668., 1669., 1670.,
      1671., 1672., 1673., 1674., 1675., 1676., 1677., 1678., 1679., 1680.,
      1677., 1678., 1679., 1680., 1677., 1678., 1679., 1680., 1677., 1678.,
      1679., 1680., 1677., 1678., 1679., 1680., 1677., 1678., 1679., 1680.,
      1701., 1702., 1703., 1704., 1705., 1706., 1707., 1708., 1709., 1710.,
      1711., 1712., 1713., 1714., 1715., 1716., 1717., 1718., 1719., 1720.,
      1721., 1722., 1723., 1724., 1725., 1726., 1727., 1728., 1729., 1730.,
      1731., 1732., 1733., 1734., 1735., 1736., 1733., 1734., 1735., 1736.,
      1733., 1734., 1735., 1736., 1733., 1734., 1735., 1736., 1733., 1734.,
      1735., 1736., 1733., 1734., 1735., 1736., 1757., 1758., 1759., 1760.,
      1761., 1762., 1763., 1764., 1765., 1766., 1767., 1768., 1769., 1770.,
      1771., 1772., 1773., 1774., 1775., 1776., 1777., 1778., 1779., 1780.,
      1781., 1782., 1783., 1784., 1785., 1786., 1787., 1788., 1789., 1790.,
      1791., 1792., 1789., 1790., 1791., 1792., 1789., 1790., 1791., 1792.,
      1789., 1790., 1791., 1792., 1789., 1790., 1791., 1792., 1789., 1790.,
      1791., 1792., 1813., 1814., 1815., 1816., 1817., 1818., 1819., 1820.,
      1821., 1822., 1823., 1824., 1825., 1826., 1827., 1828., 1829., 1830.,
      1831., 1832., 1833., 1834., 1835., 1836., 1837., 1838., 1839., 1840.,
      1841., 1842., 1843., 1844., 1845., 1846., 1847., 1848., 1845., 1846.,
      1847., 1848., 1845., 1846., 1847., 1848., 1845., 1846., 1847., 1848.,
      1845., 1846., 1847., 1848., 1845., 1846., 1847., 1848., 1869., 1870.,
      1871., 1872., 1873., 1874., 1875., 1876., 1877., 1878., 1879., 1880.,
      1881., 1882., 1883., 1884., 1885., 1886., 1887., 1888., 1889., 1890.,
      1891., 1892., 1893., 1894., 1895., 1896., 1897., 1898., 1899., 1900.,
      1901., 1902., 1903., 1904., 1901., 1902., 1903., 1904., 1901., 1902.,
      1903., 1904., 1901., 1902., 1903., 1904., 1901., 1902., 1903., 1904.,
      1901., 1902., 1903., 1904., 1925., 1926., 1927., 1928., 1929., 1930.,
      1931., 1932., 1933., 1934., 1935., 1936., 1937., 1938., 1939., 1940.,
      1941., 1942., 1943., 1944., 1945., 1946., 1947., 1948., 1949., 1950.,
      1951., 1952., 1953., 1954., 1955., 1956., 1957., 1958., 1959., 1960.,
      1957., 1958., 1959., 1960., 1957., 1958., 1959., 1960., 1957., 1958.,
      1959., 1960., 1957., 1958., 1959., 1960., 1957., 1958., 1959., 1960.,
      1981., 1982., 1983., 1984., 1985., 1986., 1987., 1988., 1989., 1990.,
      1991., 1992., 1993., 1994., 1995., 1996., 1997., 1998., 1999., 2000.,
      2001., 2002., 2003., 2004., 2005., 2006., 2007., 2008., 2009., 2010.,
      2011., 2012., 2013., 2014., 2015., 2016., 2013., 2014., 2015., 2016.,
      2013., 2014., 2015., 2016., 2013., 2014., 2015., 2016., 2013., 2014.,
      2015., 2016., 2013., 2014., 2015., 2016., 1981., 1982., 1983., 1984.,
      1985., 1986., 1987., 1988., 1989., 1990., 1991., 1992., 1993., 1994.,
      1995., 1996., 1997., 1998., 1999., 2000., 2001., 2002., 2003., 2004.,
      2005., 2006., 2007., 2008., 2009., 2010., 2011., 2012., 2013., 2014.,
      2015., 2016., 2013., 2014., 2015., 2016., 2013., 2014., 2015., 2016.,
      2013., 2014., 2015., 2016., 2013., 2014., 2015., 2016., 2013., 2014.,
      2015., 2016., 1981., 1982., 1983., 1984., 1985., 1986., 1987., 1988.,
      1989., 1990., 1991., 1992., 1993., 1994., 1995., 1996., 1997., 1998.,
      1999., 2000., 2001., 2002., 2003., 2004., 2005., 2006., 2007., 2008.,
      2009., 2010., 2011., 2012., 2013., 2014., 2015., 2016., 2013., 2014.,
      2015., 2016., 2013., 2014., 2015., 2016., 2013., 2014., 2015., 2016.,
      2013., 2014., 2015., 2016., 2013., 2014., 2015., 2016., 1981., 1982.,
      1983., 1984., 1985., 1986., 1987., 1988., 1989., 1990., 1991., 1992.,
      1993., 1994., 1995., 1996., 1997., 1998., 1999., 2000., 2001., 2002.,
      2003., 2004., 2005., 2006., 2007., 2008., 2009., 2010., 2011., 2012.,
      2013., 2014., 2015., 2016., 2013., 2014., 2015., 2016., 2013., 2014.,
      2015., 2016., 2013., 2014., 2015., 2016., 2013., 2014., 2015., 2016.,
      2013., 2014., 2015., 2016., 1981., 1982., 1983., 1984., 1985., 1986.,
      1987., 1988., 1989., 1990., 1991., 1992., 1993., 1994., 1995., 1996.,
      1997., 1998., 1999., 2000., 2001., 2002., 2003., 2004., 2005., 2006.,
      2007., 2008., 2009., 2010., 2011., 2012., 2013., 2014., 2015., 2016.,
      2013., 2014., 2015., 2016., 2013., 2014., 2015., 2016., 2013., 2014.,
      2015., 2016., 2013., 2014., 2015., 2016., 2013., 2014., 2015., 2016.,
      1981., 1982., 1983., 1984., 1985., 1986., 1987., 1988., 1989., 1990.,
      1991., 1992., 1993., 1994., 1995., 1996., 1997., 1998., 1999., 2000.,
      2001., 2002., 2003., 2004., 2005., 2006., 2007., 2008., 2009., 2010.,
      2011., 2012., 2013., 2014., 2015., 2016., 2013., 2014., 2015., 2016.,
      2013., 2014., 2015., 2016., 2013., 2014., 2015., 2016., 2013., 2014.,
      2015., 2016., 2013., 2014., 2015., 2016.};
  const std::array<int, 4> in_shape = {{3, 12, 14, 4}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, VALID3x12x14x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      601.,  602.,  603.,  604.,  605.,  606.,  607.,  608.,  609.,  610.,
      611.,  612.,  613.,  614.,  615.,  616.,  657.,  658.,  659.,  660.,
      661.,  662.,  663.,  664.,  665.,  666.,  667.,  668.,  669.,  670.,
      671.,  672.,  1273., 1274., 1275., 1276., 1277., 1278., 1279., 1280.,
      1281., 1282., 1283., 1284., 1285., 1286., 1287., 1288., 1329., 1330.,
      1331., 1332., 1333., 1334., 1335., 1336., 1337., 1338., 1339., 1340.,
      1341., 1342., 1343., 1344., 1945., 1946., 1947., 1948., 1949., 1950.,
      1951., 1952., 1953., 1954., 1955., 1956., 1957., 1958., 1959., 1960.,
      2001., 2002., 2003., 2004., 2005., 2006., 2007., 2008., 2009., 2010.,
      2011., 2012., 2013., 2014., 2015., 2016.};
  const std::array<int, 4> in_shape = {{3, 12, 14, 4}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, SAME3x13x12x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      66.,  67.,  68.,  69.,  70.,  71.,  72.,  72.,  72.,  72.,  72.,  72.,
      78.,  79.,  80.,  81.,  82.,  83.,  84.,  84.,  84.,  84.,  84.,  84.,
      90.,  91.,  92.,  93.,  94.,  95.,  96.,  96.,  96.,  96.,  96.,  96.,
      102., 103., 104., 105., 106., 107., 108., 108., 108., 108., 108., 108.,
      114., 115., 116., 117., 118., 119., 120., 120., 120., 120., 120., 120.,
      126., 127., 128., 129., 130., 131., 132., 132., 132., 132., 132., 132.,
      138., 139., 140., 141., 142., 143., 144., 144., 144., 144., 144., 144.,
      150., 151., 152., 153., 154., 155., 156., 156., 156., 156., 156., 156.,
      150., 151., 152., 153., 154., 155., 156., 156., 156., 156., 156., 156.,
      150., 151., 152., 153., 154., 155., 156., 156., 156., 156., 156., 156.,
      150., 151., 152., 153., 154., 155., 156., 156., 156., 156., 156., 156.,
      150., 151., 152., 153., 154., 155., 156., 156., 156., 156., 156., 156.,
      150., 151., 152., 153., 154., 155., 156., 156., 156., 156., 156., 156.,
      222., 223., 224., 225., 226., 227., 228., 228., 228., 228., 228., 228.,
      234., 235., 236., 237., 238., 239., 240., 240., 240., 240., 240., 240.,
      246., 247., 248., 249., 250., 251., 252., 252., 252., 252., 252., 252.,
      258., 259., 260., 261., 262., 263., 264., 264., 264., 264., 264., 264.,
      270., 271., 272., 273., 274., 275., 276., 276., 276., 276., 276., 276.,
      282., 283., 284., 285., 286., 287., 288., 288., 288., 288., 288., 288.,
      294., 295., 296., 297., 298., 299., 300., 300., 300., 300., 300., 300.,
      306., 307., 308., 309., 310., 311., 312., 312., 312., 312., 312., 312.,
      306., 307., 308., 309., 310., 311., 312., 312., 312., 312., 312., 312.,
      306., 307., 308., 309., 310., 311., 312., 312., 312., 312., 312., 312.,
      306., 307., 308., 309., 310., 311., 312., 312., 312., 312., 312., 312.,
      306., 307., 308., 309., 310., 311., 312., 312., 312., 312., 312., 312.,
      306., 307., 308., 309., 310., 311., 312., 312., 312., 312., 312., 312.,
      378., 379., 380., 381., 382., 383., 384., 384., 384., 384., 384., 384.,
      390., 391., 392., 393., 394., 395., 396., 396., 396., 396., 396., 396.,
      402., 403., 404., 405., 406., 407., 408., 408., 408., 408., 408., 408.,
      414., 415., 416., 417., 418., 419., 420., 420., 420., 420., 420., 420.,
      426., 427., 428., 429., 430., 431., 432., 432., 432., 432., 432., 432.,
      438., 439., 440., 441., 442., 443., 444., 444., 444., 444., 444., 444.,
      450., 451., 452., 453., 454., 455., 456., 456., 456., 456., 456., 456.,
      462., 463., 464., 465., 466., 467., 468., 468., 468., 468., 468., 468.,
      462., 463., 464., 465., 466., 467., 468., 468., 468., 468., 468., 468.,
      462., 463., 464., 465., 466., 467., 468., 468., 468., 468., 468., 468.,
      462., 463., 464., 465., 466., 467., 468., 468., 468., 468., 468., 468.,
      462., 463., 464., 465., 466., 467., 468., 468., 468., 468., 468., 468.,
      462., 463., 464., 465., 466., 467., 468., 468., 468., 468., 468., 468.};
  const std::array<int, 4> in_shape = {{3, 13, 12, 1}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, VALID3x13x12x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {131., 132., 143., 144., 155., 156.,
                                         287., 288., 299., 300., 311., 312.,
                                         443., 444., 455., 456., 467., 468.};
  const std::array<int, 4> in_shape = {{3, 13, 12, 1}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, SAME3x13x12x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      131., 132., 133., 134., 135., 136., 137., 138., 139., 140., 141., 142.,
      143., 144., 143., 144., 143., 144., 143., 144., 143., 144., 143., 144.,
      155., 156., 157., 158., 159., 160., 161., 162., 163., 164., 165., 166.,
      167., 168., 167., 168., 167., 168., 167., 168., 167., 168., 167., 168.,
      179., 180., 181., 182., 183., 184., 185., 186., 187., 188., 189., 190.,
      191., 192., 191., 192., 191., 192., 191., 192., 191., 192., 191., 192.,
      203., 204., 205., 206., 207., 208., 209., 210., 211., 212., 213., 214.,
      215., 216., 215., 216., 215., 216., 215., 216., 215., 216., 215., 216.,
      227., 228., 229., 230., 231., 232., 233., 234., 235., 236., 237., 238.,
      239., 240., 239., 240., 239., 240., 239., 240., 239., 240., 239., 240.,
      251., 252., 253., 254., 255., 256., 257., 258., 259., 260., 261., 262.,
      263., 264., 263., 264., 263., 264., 263., 264., 263., 264., 263., 264.,
      275., 276., 277., 278., 279., 280., 281., 282., 283., 284., 285., 286.,
      287., 288., 287., 288., 287., 288., 287., 288., 287., 288., 287., 288.,
      299., 300., 301., 302., 303., 304., 305., 306., 307., 308., 309., 310.,
      311., 312., 311., 312., 311., 312., 311., 312., 311., 312., 311., 312.,
      299., 300., 301., 302., 303., 304., 305., 306., 307., 308., 309., 310.,
      311., 312., 311., 312., 311., 312., 311., 312., 311., 312., 311., 312.,
      299., 300., 301., 302., 303., 304., 305., 306., 307., 308., 309., 310.,
      311., 312., 311., 312., 311., 312., 311., 312., 311., 312., 311., 312.,
      299., 300., 301., 302., 303., 304., 305., 306., 307., 308., 309., 310.,
      311., 312., 311., 312., 311., 312., 311., 312., 311., 312., 311., 312.,
      299., 300., 301., 302., 303., 304., 305., 306., 307., 308., 309., 310.,
      311., 312., 311., 312., 311., 312., 311., 312., 311., 312., 311., 312.,
      299., 300., 301., 302., 303., 304., 305., 306., 307., 308., 309., 310.,
      311., 312., 311., 312., 311., 312., 311., 312., 311., 312., 311., 312.,
      443., 444., 445., 446., 447., 448., 449., 450., 451., 452., 453., 454.,
      455., 456., 455., 456., 455., 456., 455., 456., 455., 456., 455., 456.,
      467., 468., 469., 470., 471., 472., 473., 474., 475., 476., 477., 478.,
      479., 480., 479., 480., 479., 480., 479., 480., 479., 480., 479., 480.,
      491., 492., 493., 494., 495., 496., 497., 498., 499., 500., 501., 502.,
      503., 504., 503., 504., 503., 504., 503., 504., 503., 504., 503., 504.,
      515., 516., 517., 518., 519., 520., 521., 522., 523., 524., 525., 526.,
      527., 528., 527., 528., 527., 528., 527., 528., 527., 528., 527., 528.,
      539., 540., 541., 542., 543., 544., 545., 546., 547., 548., 549., 550.,
      551., 552., 551., 552., 551., 552., 551., 552., 551., 552., 551., 552.,
      563., 564., 565., 566., 567., 568., 569., 570., 571., 572., 573., 574.,
      575., 576., 575., 576., 575., 576., 575., 576., 575., 576., 575., 576.,
      587., 588., 589., 590., 591., 592., 593., 594., 595., 596., 597., 598.,
      599., 600., 599., 600., 599., 600., 599., 600., 599., 600., 599., 600.,
      611., 612., 613., 614., 615., 616., 617., 618., 619., 620., 621., 622.,
      623., 624., 623., 624., 623., 624., 623., 624., 623., 624., 623., 624.,
      611., 612., 613., 614., 615., 616., 617., 618., 619., 620., 621., 622.,
      623., 624., 623., 624., 623., 624., 623., 624., 623., 624., 623., 624.,
      611., 612., 613., 614., 615., 616., 617., 618., 619., 620., 621., 622.,
      623., 624., 623., 624., 623., 624., 623., 624., 623., 624., 623., 624.,
      611., 612., 613., 614., 615., 616., 617., 618., 619., 620., 621., 622.,
      623., 624., 623., 624., 623., 624., 623., 624., 623., 624., 623., 624.,
      611., 612., 613., 614., 615., 616., 617., 618., 619., 620., 621., 622.,
      623., 624., 623., 624., 623., 624., 623., 624., 623., 624., 623., 624.,
      611., 612., 613., 614., 615., 616., 617., 618., 619., 620., 621., 622.,
      623., 624., 623., 624., 623., 624., 623., 624., 623., 624., 623., 624.,
      755., 756., 757., 758., 759., 760., 761., 762., 763., 764., 765., 766.,
      767., 768., 767., 768., 767., 768., 767., 768., 767., 768., 767., 768.,
      779., 780., 781., 782., 783., 784., 785., 786., 787., 788., 789., 790.,
      791., 792., 791., 792., 791., 792., 791., 792., 791., 792., 791., 792.,
      803., 804., 805., 806., 807., 808., 809., 810., 811., 812., 813., 814.,
      815., 816., 815., 816., 815., 816., 815., 816., 815., 816., 815., 816.,
      827., 828., 829., 830., 831., 832., 833., 834., 835., 836., 837., 838.,
      839., 840., 839., 840., 839., 840., 839., 840., 839., 840., 839., 840.,
      851., 852., 853., 854., 855., 856., 857., 858., 859., 860., 861., 862.,
      863., 864., 863., 864., 863., 864., 863., 864., 863., 864., 863., 864.,
      875., 876., 877., 878., 879., 880., 881., 882., 883., 884., 885., 886.,
      887., 888., 887., 888., 887., 888., 887., 888., 887., 888., 887., 888.,
      899., 900., 901., 902., 903., 904., 905., 906., 907., 908., 909., 910.,
      911., 912., 911., 912., 911., 912., 911., 912., 911., 912., 911., 912.,
      923., 924., 925., 926., 927., 928., 929., 930., 931., 932., 933., 934.,
      935., 936., 935., 936., 935., 936., 935., 936., 935., 936., 935., 936.,
      923., 924., 925., 926., 927., 928., 929., 930., 931., 932., 933., 934.,
      935., 936., 935., 936., 935., 936., 935., 936., 935., 936., 935., 936.,
      923., 924., 925., 926., 927., 928., 929., 930., 931., 932., 933., 934.,
      935., 936., 935., 936., 935., 936., 935., 936., 935., 936., 935., 936.,
      923., 924., 925., 926., 927., 928., 929., 930., 931., 932., 933., 934.,
      935., 936., 935., 936., 935., 936., 935., 936., 935., 936., 935., 936.,
      923., 924., 925., 926., 927., 928., 929., 930., 931., 932., 933., 934.,
      935., 936., 935., 936., 935., 936., 935., 936., 935., 936., 935., 936.,
      923., 924., 925., 926., 927., 928., 929., 930., 931., 932., 933., 934.,
      935., 936., 935., 936., 935., 936., 935., 936., 935., 936., 935., 936.};
  const std::array<int, 4> in_shape = {{3, 13, 12, 2}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, VALID3x13x12x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      261., 262., 263., 264., 285., 286., 287., 288., 309., 310., 311., 312.,
      573., 574., 575., 576., 597., 598., 599., 600., 621., 622., 623., 624.,
      885., 886., 887., 888., 909., 910., 911., 912., 933., 934., 935., 936.};
  const std::array<int, 4> in_shape = {{3, 13, 12, 2}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, SAME3x13x12x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      261.,  262.,  263.,  264.,  265.,  266.,  267.,  268.,  269.,  270.,
      271.,  272.,  273.,  274.,  275.,  276.,  277.,  278.,  279.,  280.,
      281.,  282.,  283.,  284.,  285.,  286.,  287.,  288.,  285.,  286.,
      287.,  288.,  285.,  286.,  287.,  288.,  285.,  286.,  287.,  288.,
      285.,  286.,  287.,  288.,  285.,  286.,  287.,  288.,  309.,  310.,
      311.,  312.,  313.,  314.,  315.,  316.,  317.,  318.,  319.,  320.,
      321.,  322.,  323.,  324.,  325.,  326.,  327.,  328.,  329.,  330.,
      331.,  332.,  333.,  334.,  335.,  336.,  333.,  334.,  335.,  336.,
      333.,  334.,  335.,  336.,  333.,  334.,  335.,  336.,  333.,  334.,
      335.,  336.,  333.,  334.,  335.,  336.,  357.,  358.,  359.,  360.,
      361.,  362.,  363.,  364.,  365.,  366.,  367.,  368.,  369.,  370.,
      371.,  372.,  373.,  374.,  375.,  376.,  377.,  378.,  379.,  380.,
      381.,  382.,  383.,  384.,  381.,  382.,  383.,  384.,  381.,  382.,
      383.,  384.,  381.,  382.,  383.,  384.,  381.,  382.,  383.,  384.,
      381.,  382.,  383.,  384.,  405.,  406.,  407.,  408.,  409.,  410.,
      411.,  412.,  413.,  414.,  415.,  416.,  417.,  418.,  419.,  420.,
      421.,  422.,  423.,  424.,  425.,  426.,  427.,  428.,  429.,  430.,
      431.,  432.,  429.,  430.,  431.,  432.,  429.,  430.,  431.,  432.,
      429.,  430.,  431.,  432.,  429.,  430.,  431.,  432.,  429.,  430.,
      431.,  432.,  453.,  454.,  455.,  456.,  457.,  458.,  459.,  460.,
      461.,  462.,  463.,  464.,  465.,  466.,  467.,  468.,  469.,  470.,
      471.,  472.,  473.,  474.,  475.,  476.,  477.,  478.,  479.,  480.,
      477.,  478.,  479.,  480.,  477.,  478.,  479.,  480.,  477.,  478.,
      479.,  480.,  477.,  478.,  479.,  480.,  477.,  478.,  479.,  480.,
      501.,  502.,  503.,  504.,  505.,  506.,  507.,  508.,  509.,  510.,
      511.,  512.,  513.,  514.,  515.,  516.,  517.,  518.,  519.,  520.,
      521.,  522.,  523.,  524.,  525.,  526.,  527.,  528.,  525.,  526.,
      527.,  528.,  525.,  526.,  527.,  528.,  525.,  526.,  527.,  528.,
      525.,  526.,  527.,  528.,  525.,  526.,  527.,  528.,  549.,  550.,
      551.,  552.,  553.,  554.,  555.,  556.,  557.,  558.,  559.,  560.,
      561.,  562.,  563.,  564.,  565.,  566.,  567.,  568.,  569.,  570.,
      571.,  572.,  573.,  574.,  575.,  576.,  573.,  574.,  575.,  576.,
      573.,  574.,  575.,  576.,  573.,  574.,  575.,  576.,  573.,  574.,
      575.,  576.,  573.,  574.,  575.,  576.,  597.,  598.,  599.,  600.,
      601.,  602.,  603.,  604.,  605.,  606.,  607.,  608.,  609.,  610.,
      611.,  612.,  613.,  614.,  615.,  616.,  617.,  618.,  619.,  620.,
      621.,  622.,  623.,  624.,  621.,  622.,  623.,  624.,  621.,  622.,
      623.,  624.,  621.,  622.,  623.,  624.,  621.,  622.,  623.,  624.,
      621.,  622.,  623.,  624.,  597.,  598.,  599.,  600.,  601.,  602.,
      603.,  604.,  605.,  606.,  607.,  608.,  609.,  610.,  611.,  612.,
      613.,  614.,  615.,  616.,  617.,  618.,  619.,  620.,  621.,  622.,
      623.,  624.,  621.,  622.,  623.,  624.,  621.,  622.,  623.,  624.,
      621.,  622.,  623.,  624.,  621.,  622.,  623.,  624.,  621.,  622.,
      623.,  624.,  597.,  598.,  599.,  600.,  601.,  602.,  603.,  604.,
      605.,  606.,  607.,  608.,  609.,  610.,  611.,  612.,  613.,  614.,
      615.,  616.,  617.,  618.,  619.,  620.,  621.,  622.,  623.,  624.,
      621.,  622.,  623.,  624.,  621.,  622.,  623.,  624.,  621.,  622.,
      623.,  624.,  621.,  622.,  623.,  624.,  621.,  622.,  623.,  624.,
      597.,  598.,  599.,  600.,  601.,  602.,  603.,  604.,  605.,  606.,
      607.,  608.,  609.,  610.,  611.,  612.,  613.,  614.,  615.,  616.,
      617.,  618.,  619.,  620.,  621.,  622.,  623.,  624.,  621.,  622.,
      623.,  624.,  621.,  622.,  623.,  624.,  621.,  622.,  623.,  624.,
      621.,  622.,  623.,  624.,  621.,  622.,  623.,  624.,  597.,  598.,
      599.,  600.,  601.,  602.,  603.,  604.,  605.,  606.,  607.,  608.,
      609.,  610.,  611.,  612.,  613.,  614.,  615.,  616.,  617.,  618.,
      619.,  620.,  621.,  622.,  623.,  624.,  621.,  622.,  623.,  624.,
      621.,  622.,  623.,  624.,  621.,  622.,  623.,  624.,  621.,  622.,
      623.,  624.,  621.,  622.,  623.,  624.,  597.,  598.,  599.,  600.,
      601.,  602.,  603.,  604.,  605.,  606.,  607.,  608.,  609.,  610.,
      611.,  612.,  613.,  614.,  615.,  616.,  617.,  618.,  619.,  620.,
      621.,  622.,  623.,  624.,  621.,  622.,  623.,  624.,  621.,  622.,
      623.,  624.,  621.,  622.,  623.,  624.,  621.,  622.,  623.,  624.,
      621.,  622.,  623.,  624.,  885.,  886.,  887.,  888.,  889.,  890.,
      891.,  892.,  893.,  894.,  895.,  896.,  897.,  898.,  899.,  900.,
      901.,  902.,  903.,  904.,  905.,  906.,  907.,  908.,  909.,  910.,
      911.,  912.,  909.,  910.,  911.,  912.,  909.,  910.,  911.,  912.,
      909.,  910.,  911.,  912.,  909.,  910.,  911.,  912.,  909.,  910.,
      911.,  912.,  933.,  934.,  935.,  936.,  937.,  938.,  939.,  940.,
      941.,  942.,  943.,  944.,  945.,  946.,  947.,  948.,  949.,  950.,
      951.,  952.,  953.,  954.,  955.,  956.,  957.,  958.,  959.,  960.,
      957.,  958.,  959.,  960.,  957.,  958.,  959.,  960.,  957.,  958.,
      959.,  960.,  957.,  958.,  959.,  960.,  957.,  958.,  959.,  960.,
      981.,  982.,  983.,  984.,  985.,  986.,  987.,  988.,  989.,  990.,
      991.,  992.,  993.,  994.,  995.,  996.,  997.,  998.,  999.,  1000.,
      1001., 1002., 1003., 1004., 1005., 1006., 1007., 1008., 1005., 1006.,
      1007., 1008., 1005., 1006., 1007., 1008., 1005., 1006., 1007., 1008.,
      1005., 1006., 1007., 1008., 1005., 1006., 1007., 1008., 1029., 1030.,
      1031., 1032., 1033., 1034., 1035., 1036., 1037., 1038., 1039., 1040.,
      1041., 1042., 1043., 1044., 1045., 1046., 1047., 1048., 1049., 1050.,
      1051., 1052., 1053., 1054., 1055., 1056., 1053., 1054., 1055., 1056.,
      1053., 1054., 1055., 1056., 1053., 1054., 1055., 1056., 1053., 1054.,
      1055., 1056., 1053., 1054., 1055., 1056., 1077., 1078., 1079., 1080.,
      1081., 1082., 1083., 1084., 1085., 1086., 1087., 1088., 1089., 1090.,
      1091., 1092., 1093., 1094., 1095., 1096., 1097., 1098., 1099., 1100.,
      1101., 1102., 1103., 1104., 1101., 1102., 1103., 1104., 1101., 1102.,
      1103., 1104., 1101., 1102., 1103., 1104., 1101., 1102., 1103., 1104.,
      1101., 1102., 1103., 1104., 1125., 1126., 1127., 1128., 1129., 1130.,
      1131., 1132., 1133., 1134., 1135., 1136., 1137., 1138., 1139., 1140.,
      1141., 1142., 1143., 1144., 1145., 1146., 1147., 1148., 1149., 1150.,
      1151., 1152., 1149., 1150., 1151., 1152., 1149., 1150., 1151., 1152.,
      1149., 1150., 1151., 1152., 1149., 1150., 1151., 1152., 1149., 1150.,
      1151., 1152., 1173., 1174., 1175., 1176., 1177., 1178., 1179., 1180.,
      1181., 1182., 1183., 1184., 1185., 1186., 1187., 1188., 1189., 1190.,
      1191., 1192., 1193., 1194., 1195., 1196., 1197., 1198., 1199., 1200.,
      1197., 1198., 1199., 1200., 1197., 1198., 1199., 1200., 1197., 1198.,
      1199., 1200., 1197., 1198., 1199., 1200., 1197., 1198., 1199., 1200.,
      1221., 1222., 1223., 1224., 1225., 1226., 1227., 1228., 1229., 1230.,
      1231., 1232., 1233., 1234., 1235., 1236., 1237., 1238., 1239., 1240.,
      1241., 1242., 1243., 1244., 1245., 1246., 1247., 1248., 1245., 1246.,
      1247., 1248., 1245., 1246., 1247., 1248., 1245., 1246., 1247., 1248.,
      1245., 1246., 1247., 1248., 1245., 1246., 1247., 1248., 1221., 1222.,
      1223., 1224., 1225., 1226., 1227., 1228., 1229., 1230., 1231., 1232.,
      1233., 1234., 1235., 1236., 1237., 1238., 1239., 1240., 1241., 1242.,
      1243., 1244., 1245., 1246., 1247., 1248., 1245., 1246., 1247., 1248.,
      1245., 1246., 1247., 1248., 1245., 1246., 1247., 1248., 1245., 1246.,
      1247., 1248., 1245., 1246., 1247., 1248., 1221., 1222., 1223., 1224.,
      1225., 1226., 1227., 1228., 1229., 1230., 1231., 1232., 1233., 1234.,
      1235., 1236., 1237., 1238., 1239., 1240., 1241., 1242., 1243., 1244.,
      1245., 1246., 1247., 1248., 1245., 1246., 1247., 1248., 1245., 1246.,
      1247., 1248., 1245., 1246., 1247., 1248., 1245., 1246., 1247., 1248.,
      1245., 1246., 1247., 1248., 1221., 1222., 1223., 1224., 1225., 1226.,
      1227., 1228., 1229., 1230., 1231., 1232., 1233., 1234., 1235., 1236.,
      1237., 1238., 1239., 1240., 1241., 1242., 1243., 1244., 1245., 1246.,
      1247., 1248., 1245., 1246., 1247., 1248., 1245., 1246., 1247., 1248.,
      1245., 1246., 1247., 1248., 1245., 1246., 1247., 1248., 1245., 1246.,
      1247., 1248., 1221., 1222., 1223., 1224., 1225., 1226., 1227., 1228.,
      1229., 1230., 1231., 1232., 1233., 1234., 1235., 1236., 1237., 1238.,
      1239., 1240., 1241., 1242., 1243., 1244., 1245., 1246., 1247., 1248.,
      1245., 1246., 1247., 1248., 1245., 1246., 1247., 1248., 1245., 1246.,
      1247., 1248., 1245., 1246., 1247., 1248., 1245., 1246., 1247., 1248.,
      1221., 1222., 1223., 1224., 1225., 1226., 1227., 1228., 1229., 1230.,
      1231., 1232., 1233., 1234., 1235., 1236., 1237., 1238., 1239., 1240.,
      1241., 1242., 1243., 1244., 1245., 1246., 1247., 1248., 1245., 1246.,
      1247., 1248., 1245., 1246., 1247., 1248., 1245., 1246., 1247., 1248.,
      1245., 1246., 1247., 1248., 1245., 1246., 1247., 1248., 1509., 1510.,
      1511., 1512., 1513., 1514., 1515., 1516., 1517., 1518., 1519., 1520.,
      1521., 1522., 1523., 1524., 1525., 1526., 1527., 1528., 1529., 1530.,
      1531., 1532., 1533., 1534., 1535., 1536., 1533., 1534., 1535., 1536.,
      1533., 1534., 1535., 1536., 1533., 1534., 1535., 1536., 1533., 1534.,
      1535., 1536., 1533., 1534., 1535., 1536., 1557., 1558., 1559., 1560.,
      1561., 1562., 1563., 1564., 1565., 1566., 1567., 1568., 1569., 1570.,
      1571., 1572., 1573., 1574., 1575., 1576., 1577., 1578., 1579., 1580.,
      1581., 1582., 1583., 1584., 1581., 1582., 1583., 1584., 1581., 1582.,
      1583., 1584., 1581., 1582., 1583., 1584., 1581., 1582., 1583., 1584.,
      1581., 1582., 1583., 1584., 1605., 1606., 1607., 1608., 1609., 1610.,
      1611., 1612., 1613., 1614., 1615., 1616., 1617., 1618., 1619., 1620.,
      1621., 1622., 1623., 1624., 1625., 1626., 1627., 1628., 1629., 1630.,
      1631., 1632., 1629., 1630., 1631., 1632., 1629., 1630., 1631., 1632.,
      1629., 1630., 1631., 1632., 1629., 1630., 1631., 1632., 1629., 1630.,
      1631., 1632., 1653., 1654., 1655., 1656., 1657., 1658., 1659., 1660.,
      1661., 1662., 1663., 1664., 1665., 1666., 1667., 1668., 1669., 1670.,
      1671., 1672., 1673., 1674., 1675., 1676., 1677., 1678., 1679., 1680.,
      1677., 1678., 1679., 1680., 1677., 1678., 1679., 1680., 1677., 1678.,
      1679., 1680., 1677., 1678., 1679., 1680., 1677., 1678., 1679., 1680.,
      1701., 1702., 1703., 1704., 1705., 1706., 1707., 1708., 1709., 1710.,
      1711., 1712., 1713., 1714., 1715., 1716., 1717., 1718., 1719., 1720.,
      1721., 1722., 1723., 1724., 1725., 1726., 1727., 1728., 1725., 1726.,
      1727., 1728., 1725., 1726., 1727., 1728., 1725., 1726., 1727., 1728.,
      1725., 1726., 1727., 1728., 1725., 1726., 1727., 1728., 1749., 1750.,
      1751., 1752., 1753., 1754., 1755., 1756., 1757., 1758., 1759., 1760.,
      1761., 1762., 1763., 1764., 1765., 1766., 1767., 1768., 1769., 1770.,
      1771., 1772., 1773., 1774., 1775., 1776., 1773., 1774., 1775., 1776.,
      1773., 1774., 1775., 1776., 1773., 1774., 1775., 1776., 1773., 1774.,
      1775., 1776., 1773., 1774., 1775., 1776., 1797., 1798., 1799., 1800.,
      1801., 1802., 1803., 1804., 1805., 1806., 1807., 1808., 1809., 1810.,
      1811., 1812., 1813., 1814., 1815., 1816., 1817., 1818., 1819., 1820.,
      1821., 1822., 1823., 1824., 1821., 1822., 1823., 1824., 1821., 1822.,
      1823., 1824., 1821., 1822., 1823., 1824., 1821., 1822., 1823., 1824.,
      1821., 1822., 1823., 1824., 1845., 1846., 1847., 1848., 1849., 1850.,
      1851., 1852., 1853., 1854., 1855., 1856., 1857., 1858., 1859., 1860.,
      1861., 1862., 1863., 1864., 1865., 1866., 1867., 1868., 1869., 1870.,
      1871., 1872., 1869., 1870., 1871., 1872., 1869., 1870., 1871., 1872.,
      1869., 1870., 1871., 1872., 1869., 1870., 1871., 1872., 1869., 1870.,
      1871., 1872., 1845., 1846., 1847., 1848., 1849., 1850., 1851., 1852.,
      1853., 1854., 1855., 1856., 1857., 1858., 1859., 1860., 1861., 1862.,
      1863., 1864., 1865., 1866., 1867., 1868., 1869., 1870., 1871., 1872.,
      1869., 1870., 1871., 1872., 1869., 1870., 1871., 1872., 1869., 1870.,
      1871., 1872., 1869., 1870., 1871., 1872., 1869., 1870., 1871., 1872.,
      1845., 1846., 1847., 1848., 1849., 1850., 1851., 1852., 1853., 1854.,
      1855., 1856., 1857., 1858., 1859., 1860., 1861., 1862., 1863., 1864.,
      1865., 1866., 1867., 1868., 1869., 1870., 1871., 1872., 1869., 1870.,
      1871., 1872., 1869., 1870., 1871., 1872., 1869., 1870., 1871., 1872.,
      1869., 1870., 1871., 1872., 1869., 1870., 1871., 1872., 1845., 1846.,
      1847., 1848., 1849., 1850., 1851., 1852., 1853., 1854., 1855., 1856.,
      1857., 1858., 1859., 1860., 1861., 1862., 1863., 1864., 1865., 1866.,
      1867., 1868., 1869., 1870., 1871., 1872., 1869., 1870., 1871., 1872.,
      1869., 1870., 1871., 1872., 1869., 1870., 1871., 1872., 1869., 1870.,
      1871., 1872., 1869., 1870., 1871., 1872., 1845., 1846., 1847., 1848.,
      1849., 1850., 1851., 1852., 1853., 1854., 1855., 1856., 1857., 1858.,
      1859., 1860., 1861., 1862., 1863., 1864., 1865., 1866., 1867., 1868.,
      1869., 1870., 1871., 1872., 1869., 1870., 1871., 1872., 1869., 1870.,
      1871., 1872., 1869., 1870., 1871., 1872., 1869., 1870., 1871., 1872.,
      1869., 1870., 1871., 1872., 1845., 1846., 1847., 1848., 1849., 1850.,
      1851., 1852., 1853., 1854., 1855., 1856., 1857., 1858., 1859., 1860.,
      1861., 1862., 1863., 1864., 1865., 1866., 1867., 1868., 1869., 1870.,
      1871., 1872., 1869., 1870., 1871., 1872., 1869., 1870., 1871., 1872.,
      1869., 1870., 1871., 1872., 1869., 1870., 1871., 1872., 1869., 1870.,
      1871., 1872.};
  const std::array<int, 4> in_shape = {{3, 13, 12, 4}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, VALID3x13x12x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      521.,  522.,  523.,  524.,  525.,  526.,  527.,  528.,  569.,
      570.,  571.,  572.,  573.,  574.,  575.,  576.,  617.,  618.,
      619.,  620.,  621.,  622.,  623.,  624.,  1145., 1146., 1147.,
      1148., 1149., 1150., 1151., 1152., 1193., 1194., 1195., 1196.,
      1197., 1198., 1199., 1200., 1241., 1242., 1243., 1244., 1245.,
      1246., 1247., 1248., 1769., 1770., 1771., 1772., 1773., 1774.,
      1775., 1776., 1817., 1818., 1819., 1820., 1821., 1822., 1823.,
      1824., 1865., 1866., 1867., 1868., 1869., 1870., 1871., 1872.};
  const std::array<int, 4> in_shape = {{3, 13, 12, 4}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, SAME3x13x13x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      71.,  72.,  73.,  74.,  75.,  76.,  77.,  78.,  78.,  78.,  78.,  78.,
      78.,  84.,  85.,  86.,  87.,  88.,  89.,  90.,  91.,  91.,  91.,  91.,
      91.,  91.,  97.,  98.,  99.,  100., 101., 102., 103., 104., 104., 104.,
      104., 104., 104., 110., 111., 112., 113., 114., 115., 116., 117., 117.,
      117., 117., 117., 117., 123., 124., 125., 126., 127., 128., 129., 130.,
      130., 130., 130., 130., 130., 136., 137., 138., 139., 140., 141., 142.,
      143., 143., 143., 143., 143., 143., 149., 150., 151., 152., 153., 154.,
      155., 156., 156., 156., 156., 156., 156., 162., 163., 164., 165., 166.,
      167., 168., 169., 169., 169., 169., 169., 169., 162., 163., 164., 165.,
      166., 167., 168., 169., 169., 169., 169., 169., 169., 162., 163., 164.,
      165., 166., 167., 168., 169., 169., 169., 169., 169., 169., 162., 163.,
      164., 165., 166., 167., 168., 169., 169., 169., 169., 169., 169., 162.,
      163., 164., 165., 166., 167., 168., 169., 169., 169., 169., 169., 169.,
      162., 163., 164., 165., 166., 167., 168., 169., 169., 169., 169., 169.,
      169., 240., 241., 242., 243., 244., 245., 246., 247., 247., 247., 247.,
      247., 247., 253., 254., 255., 256., 257., 258., 259., 260., 260., 260.,
      260., 260., 260., 266., 267., 268., 269., 270., 271., 272., 273., 273.,
      273., 273., 273., 273., 279., 280., 281., 282., 283., 284., 285., 286.,
      286., 286., 286., 286., 286., 292., 293., 294., 295., 296., 297., 298.,
      299., 299., 299., 299., 299., 299., 305., 306., 307., 308., 309., 310.,
      311., 312., 312., 312., 312., 312., 312., 318., 319., 320., 321., 322.,
      323., 324., 325., 325., 325., 325., 325., 325., 331., 332., 333., 334.,
      335., 336., 337., 338., 338., 338., 338., 338., 338., 331., 332., 333.,
      334., 335., 336., 337., 338., 338., 338., 338., 338., 338., 331., 332.,
      333., 334., 335., 336., 337., 338., 338., 338., 338., 338., 338., 331.,
      332., 333., 334., 335., 336., 337., 338., 338., 338., 338., 338., 338.,
      331., 332., 333., 334., 335., 336., 337., 338., 338., 338., 338., 338.,
      338., 331., 332., 333., 334., 335., 336., 337., 338., 338., 338., 338.,
      338., 338., 409., 410., 411., 412., 413., 414., 415., 416., 416., 416.,
      416., 416., 416., 422., 423., 424., 425., 426., 427., 428., 429., 429.,
      429., 429., 429., 429., 435., 436., 437., 438., 439., 440., 441., 442.,
      442., 442., 442., 442., 442., 448., 449., 450., 451., 452., 453., 454.,
      455., 455., 455., 455., 455., 455., 461., 462., 463., 464., 465., 466.,
      467., 468., 468., 468., 468., 468., 468., 474., 475., 476., 477., 478.,
      479., 480., 481., 481., 481., 481., 481., 481., 487., 488., 489., 490.,
      491., 492., 493., 494., 494., 494., 494., 494., 494., 500., 501., 502.,
      503., 504., 505., 506., 507., 507., 507., 507., 507., 507., 500., 501.,
      502., 503., 504., 505., 506., 507., 507., 507., 507., 507., 507., 500.,
      501., 502., 503., 504., 505., 506., 507., 507., 507., 507., 507., 507.,
      500., 501., 502., 503., 504., 505., 506., 507., 507., 507., 507., 507.,
      507., 500., 501., 502., 503., 504., 505., 506., 507., 507., 507., 507.,
      507., 507., 500., 501., 502., 503., 504., 505., 506., 507., 507., 507.,
      507., 507., 507.};
  const std::array<int, 4> in_shape = {{3, 13, 13, 1}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, VALID3x13x13x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      141., 142., 143., 154., 155., 156., 167., 168., 169.,
      310., 311., 312., 323., 324., 325., 336., 337., 338.,
      479., 480., 481., 492., 493., 494., 505., 506., 507.};
  const std::array<int, 4> in_shape = {{3, 13, 13, 1}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, SAME3x13x13x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      141.,  142.,  143.,  144.,  145.,  146.,  147.,  148.,  149.,  150.,
      151.,  152.,  153.,  154.,  155.,  156.,  155.,  156.,  155.,  156.,
      155.,  156.,  155.,  156.,  155.,  156.,  167.,  168.,  169.,  170.,
      171.,  172.,  173.,  174.,  175.,  176.,  177.,  178.,  179.,  180.,
      181.,  182.,  181.,  182.,  181.,  182.,  181.,  182.,  181.,  182.,
      181.,  182.,  193.,  194.,  195.,  196.,  197.,  198.,  199.,  200.,
      201.,  202.,  203.,  204.,  205.,  206.,  207.,  208.,  207.,  208.,
      207.,  208.,  207.,  208.,  207.,  208.,  207.,  208.,  219.,  220.,
      221.,  222.,  223.,  224.,  225.,  226.,  227.,  228.,  229.,  230.,
      231.,  232.,  233.,  234.,  233.,  234.,  233.,  234.,  233.,  234.,
      233.,  234.,  233.,  234.,  245.,  246.,  247.,  248.,  249.,  250.,
      251.,  252.,  253.,  254.,  255.,  256.,  257.,  258.,  259.,  260.,
      259.,  260.,  259.,  260.,  259.,  260.,  259.,  260.,  259.,  260.,
      271.,  272.,  273.,  274.,  275.,  276.,  277.,  278.,  279.,  280.,
      281.,  282.,  283.,  284.,  285.,  286.,  285.,  286.,  285.,  286.,
      285.,  286.,  285.,  286.,  285.,  286.,  297.,  298.,  299.,  300.,
      301.,  302.,  303.,  304.,  305.,  306.,  307.,  308.,  309.,  310.,
      311.,  312.,  311.,  312.,  311.,  312.,  311.,  312.,  311.,  312.,
      311.,  312.,  323.,  324.,  325.,  326.,  327.,  328.,  329.,  330.,
      331.,  332.,  333.,  334.,  335.,  336.,  337.,  338.,  337.,  338.,
      337.,  338.,  337.,  338.,  337.,  338.,  337.,  338.,  323.,  324.,
      325.,  326.,  327.,  328.,  329.,  330.,  331.,  332.,  333.,  334.,
      335.,  336.,  337.,  338.,  337.,  338.,  337.,  338.,  337.,  338.,
      337.,  338.,  337.,  338.,  323.,  324.,  325.,  326.,  327.,  328.,
      329.,  330.,  331.,  332.,  333.,  334.,  335.,  336.,  337.,  338.,
      337.,  338.,  337.,  338.,  337.,  338.,  337.,  338.,  337.,  338.,
      323.,  324.,  325.,  326.,  327.,  328.,  329.,  330.,  331.,  332.,
      333.,  334.,  335.,  336.,  337.,  338.,  337.,  338.,  337.,  338.,
      337.,  338.,  337.,  338.,  337.,  338.,  323.,  324.,  325.,  326.,
      327.,  328.,  329.,  330.,  331.,  332.,  333.,  334.,  335.,  336.,
      337.,  338.,  337.,  338.,  337.,  338.,  337.,  338.,  337.,  338.,
      337.,  338.,  323.,  324.,  325.,  326.,  327.,  328.,  329.,  330.,
      331.,  332.,  333.,  334.,  335.,  336.,  337.,  338.,  337.,  338.,
      337.,  338.,  337.,  338.,  337.,  338.,  337.,  338.,  479.,  480.,
      481.,  482.,  483.,  484.,  485.,  486.,  487.,  488.,  489.,  490.,
      491.,  492.,  493.,  494.,  493.,  494.,  493.,  494.,  493.,  494.,
      493.,  494.,  493.,  494.,  505.,  506.,  507.,  508.,  509.,  510.,
      511.,  512.,  513.,  514.,  515.,  516.,  517.,  518.,  519.,  520.,
      519.,  520.,  519.,  520.,  519.,  520.,  519.,  520.,  519.,  520.,
      531.,  532.,  533.,  534.,  535.,  536.,  537.,  538.,  539.,  540.,
      541.,  542.,  543.,  544.,  545.,  546.,  545.,  546.,  545.,  546.,
      545.,  546.,  545.,  546.,  545.,  546.,  557.,  558.,  559.,  560.,
      561.,  562.,  563.,  564.,  565.,  566.,  567.,  568.,  569.,  570.,
      571.,  572.,  571.,  572.,  571.,  572.,  571.,  572.,  571.,  572.,
      571.,  572.,  583.,  584.,  585.,  586.,  587.,  588.,  589.,  590.,
      591.,  592.,  593.,  594.,  595.,  596.,  597.,  598.,  597.,  598.,
      597.,  598.,  597.,  598.,  597.,  598.,  597.,  598.,  609.,  610.,
      611.,  612.,  613.,  614.,  615.,  616.,  617.,  618.,  619.,  620.,
      621.,  622.,  623.,  624.,  623.,  624.,  623.,  624.,  623.,  624.,
      623.,  624.,  623.,  624.,  635.,  636.,  637.,  638.,  639.,  640.,
      641.,  642.,  643.,  644.,  645.,  646.,  647.,  648.,  649.,  650.,
      649.,  650.,  649.,  650.,  649.,  650.,  649.,  650.,  649.,  650.,
      661.,  662.,  663.,  664.,  665.,  666.,  667.,  668.,  669.,  670.,
      671.,  672.,  673.,  674.,  675.,  676.,  675.,  676.,  675.,  676.,
      675.,  676.,  675.,  676.,  675.,  676.,  661.,  662.,  663.,  664.,
      665.,  666.,  667.,  668.,  669.,  670.,  671.,  672.,  673.,  674.,
      675.,  676.,  675.,  676.,  675.,  676.,  675.,  676.,  675.,  676.,
      675.,  676.,  661.,  662.,  663.,  664.,  665.,  666.,  667.,  668.,
      669.,  670.,  671.,  672.,  673.,  674.,  675.,  676.,  675.,  676.,
      675.,  676.,  675.,  676.,  675.,  676.,  675.,  676.,  661.,  662.,
      663.,  664.,  665.,  666.,  667.,  668.,  669.,  670.,  671.,  672.,
      673.,  674.,  675.,  676.,  675.,  676.,  675.,  676.,  675.,  676.,
      675.,  676.,  675.,  676.,  661.,  662.,  663.,  664.,  665.,  666.,
      667.,  668.,  669.,  670.,  671.,  672.,  673.,  674.,  675.,  676.,
      675.,  676.,  675.,  676.,  675.,  676.,  675.,  676.,  675.,  676.,
      661.,  662.,  663.,  664.,  665.,  666.,  667.,  668.,  669.,  670.,
      671.,  672.,  673.,  674.,  675.,  676.,  675.,  676.,  675.,  676.,
      675.,  676.,  675.,  676.,  675.,  676.,  817.,  818.,  819.,  820.,
      821.,  822.,  823.,  824.,  825.,  826.,  827.,  828.,  829.,  830.,
      831.,  832.,  831.,  832.,  831.,  832.,  831.,  832.,  831.,  832.,
      831.,  832.,  843.,  844.,  845.,  846.,  847.,  848.,  849.,  850.,
      851.,  852.,  853.,  854.,  855.,  856.,  857.,  858.,  857.,  858.,
      857.,  858.,  857.,  858.,  857.,  858.,  857.,  858.,  869.,  870.,
      871.,  872.,  873.,  874.,  875.,  876.,  877.,  878.,  879.,  880.,
      881.,  882.,  883.,  884.,  883.,  884.,  883.,  884.,  883.,  884.,
      883.,  884.,  883.,  884.,  895.,  896.,  897.,  898.,  899.,  900.,
      901.,  902.,  903.,  904.,  905.,  906.,  907.,  908.,  909.,  910.,
      909.,  910.,  909.,  910.,  909.,  910.,  909.,  910.,  909.,  910.,
      921.,  922.,  923.,  924.,  925.,  926.,  927.,  928.,  929.,  930.,
      931.,  932.,  933.,  934.,  935.,  936.,  935.,  936.,  935.,  936.,
      935.,  936.,  935.,  936.,  935.,  936.,  947.,  948.,  949.,  950.,
      951.,  952.,  953.,  954.,  955.,  956.,  957.,  958.,  959.,  960.,
      961.,  962.,  961.,  962.,  961.,  962.,  961.,  962.,  961.,  962.,
      961.,  962.,  973.,  974.,  975.,  976.,  977.,  978.,  979.,  980.,
      981.,  982.,  983.,  984.,  985.,  986.,  987.,  988.,  987.,  988.,
      987.,  988.,  987.,  988.,  987.,  988.,  987.,  988.,  999.,  1000.,
      1001., 1002., 1003., 1004., 1005., 1006., 1007., 1008., 1009., 1010.,
      1011., 1012., 1013., 1014., 1013., 1014., 1013., 1014., 1013., 1014.,
      1013., 1014., 1013., 1014., 999.,  1000., 1001., 1002., 1003., 1004.,
      1005., 1006., 1007., 1008., 1009., 1010., 1011., 1012., 1013., 1014.,
      1013., 1014., 1013., 1014., 1013., 1014., 1013., 1014., 1013., 1014.,
      999.,  1000., 1001., 1002., 1003., 1004., 1005., 1006., 1007., 1008.,
      1009., 1010., 1011., 1012., 1013., 1014., 1013., 1014., 1013., 1014.,
      1013., 1014., 1013., 1014., 1013., 1014., 999.,  1000., 1001., 1002.,
      1003., 1004., 1005., 1006., 1007., 1008., 1009., 1010., 1011., 1012.,
      1013., 1014., 1013., 1014., 1013., 1014., 1013., 1014., 1013., 1014.,
      1013., 1014., 999.,  1000., 1001., 1002., 1003., 1004., 1005., 1006.,
      1007., 1008., 1009., 1010., 1011., 1012., 1013., 1014., 1013., 1014.,
      1013., 1014., 1013., 1014., 1013., 1014., 1013., 1014., 999.,  1000.,
      1001., 1002., 1003., 1004., 1005., 1006., 1007., 1008., 1009., 1010.,
      1011., 1012., 1013., 1014., 1013., 1014., 1013., 1014., 1013., 1014.,
      1013., 1014., 1013., 1014.};
  const std::array<int, 4> in_shape = {{3, 13, 13, 2}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, VALID3x13x13x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      281., 282., 283., 284., 285.,  286.,  307.,  308.,  309.,  310., 311.,
      312., 333., 334., 335., 336.,  337.,  338.,  619.,  620.,  621., 622.,
      623., 624., 645., 646., 647.,  648.,  649.,  650.,  671.,  672., 673.,
      674., 675., 676., 957., 958.,  959.,  960.,  961.,  962.,  983., 984.,
      985., 986., 987., 988., 1009., 1010., 1011., 1012., 1013., 1014.};
  const std::array<int, 4> in_shape = {{3, 13, 13, 2}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, SAME3x13x13x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      281.,  282.,  283.,  284.,  285.,  286.,  287.,  288.,  289.,  290.,
      291.,  292.,  293.,  294.,  295.,  296.,  297.,  298.,  299.,  300.,
      301.,  302.,  303.,  304.,  305.,  306.,  307.,  308.,  309.,  310.,
      311.,  312.,  309.,  310.,  311.,  312.,  309.,  310.,  311.,  312.,
      309.,  310.,  311.,  312.,  309.,  310.,  311.,  312.,  309.,  310.,
      311.,  312.,  333.,  334.,  335.,  336.,  337.,  338.,  339.,  340.,
      341.,  342.,  343.,  344.,  345.,  346.,  347.,  348.,  349.,  350.,
      351.,  352.,  353.,  354.,  355.,  356.,  357.,  358.,  359.,  360.,
      361.,  362.,  363.,  364.,  361.,  362.,  363.,  364.,  361.,  362.,
      363.,  364.,  361.,  362.,  363.,  364.,  361.,  362.,  363.,  364.,
      361.,  362.,  363.,  364.,  385.,  386.,  387.,  388.,  389.,  390.,
      391.,  392.,  393.,  394.,  395.,  396.,  397.,  398.,  399.,  400.,
      401.,  402.,  403.,  404.,  405.,  406.,  407.,  408.,  409.,  410.,
      411.,  412.,  413.,  414.,  415.,  416.,  413.,  414.,  415.,  416.,
      413.,  414.,  415.,  416.,  413.,  414.,  415.,  416.,  413.,  414.,
      415.,  416.,  413.,  414.,  415.,  416.,  437.,  438.,  439.,  440.,
      441.,  442.,  443.,  444.,  445.,  446.,  447.,  448.,  449.,  450.,
      451.,  452.,  453.,  454.,  455.,  456.,  457.,  458.,  459.,  460.,
      461.,  462.,  463.,  464.,  465.,  466.,  467.,  468.,  465.,  466.,
      467.,  468.,  465.,  466.,  467.,  468.,  465.,  466.,  467.,  468.,
      465.,  466.,  467.,  468.,  465.,  466.,  467.,  468.,  489.,  490.,
      491.,  492.,  493.,  494.,  495.,  496.,  497.,  498.,  499.,  500.,
      501.,  502.,  503.,  504.,  505.,  506.,  507.,  508.,  509.,  510.,
      511.,  512.,  513.,  514.,  515.,  516.,  517.,  518.,  519.,  520.,
      517.,  518.,  519.,  520.,  517.,  518.,  519.,  520.,  517.,  518.,
      519.,  520.,  517.,  518.,  519.,  520.,  517.,  518.,  519.,  520.,
      541.,  542.,  543.,  544.,  545.,  546.,  547.,  548.,  549.,  550.,
      551.,  552.,  553.,  554.,  555.,  556.,  557.,  558.,  559.,  560.,
      561.,  562.,  563.,  564.,  565.,  566.,  567.,  568.,  569.,  570.,
      571.,  572.,  569.,  570.,  571.,  572.,  569.,  570.,  571.,  572.,
      569.,  570.,  571.,  572.,  569.,  570.,  571.,  572.,  569.,  570.,
      571.,  572.,  593.,  594.,  595.,  596.,  597.,  598.,  599.,  600.,
      601.,  602.,  603.,  604.,  605.,  606.,  607.,  608.,  609.,  610.,
      611.,  612.,  613.,  614.,  615.,  616.,  617.,  618.,  619.,  620.,
      621.,  622.,  623.,  624.,  621.,  622.,  623.,  624.,  621.,  622.,
      623.,  624.,  621.,  622.,  623.,  624.,  621.,  622.,  623.,  624.,
      621.,  622.,  623.,  624.,  645.,  646.,  647.,  648.,  649.,  650.,
      651.,  652.,  653.,  654.,  655.,  656.,  657.,  658.,  659.,  660.,
      661.,  662.,  663.,  664.,  665.,  666.,  667.,  668.,  669.,  670.,
      671.,  672.,  673.,  674.,  675.,  676.,  673.,  674.,  675.,  676.,
      673.,  674.,  675.,  676.,  673.,  674.,  675.,  676.,  673.,  674.,
      675.,  676.,  673.,  674.,  675.,  676.,  645.,  646.,  647.,  648.,
      649.,  650.,  651.,  652.,  653.,  654.,  655.,  656.,  657.,  658.,
      659.,  660.,  661.,  662.,  663.,  664.,  665.,  666.,  667.,  668.,
      669.,  670.,  671.,  672.,  673.,  674.,  675.,  676.,  673.,  674.,
      675.,  676.,  673.,  674.,  675.,  676.,  673.,  674.,  675.,  676.,
      673.,  674.,  675.,  676.,  673.,  674.,  675.,  676.,  645.,  646.,
      647.,  648.,  649.,  650.,  651.,  652.,  653.,  654.,  655.,  656.,
      657.,  658.,  659.,  660.,  661.,  662.,  663.,  664.,  665.,  666.,
      667.,  668.,  669.,  670.,  671.,  672.,  673.,  674.,  675.,  676.,
      673.,  674.,  675.,  676.,  673.,  674.,  675.,  676.,  673.,  674.,
      675.,  676.,  673.,  674.,  675.,  676.,  673.,  674.,  675.,  676.,
      645.,  646.,  647.,  648.,  649.,  650.,  651.,  652.,  653.,  654.,
      655.,  656.,  657.,  658.,  659.,  660.,  661.,  662.,  663.,  664.,
      665.,  666.,  667.,  668.,  669.,  670.,  671.,  672.,  673.,  674.,
      675.,  676.,  673.,  674.,  675.,  676.,  673.,  674.,  675.,  676.,
      673.,  674.,  675.,  676.,  673.,  674.,  675.,  676.,  673.,  674.,
      675.,  676.,  645.,  646.,  647.,  648.,  649.,  650.,  651.,  652.,
      653.,  654.,  655.,  656.,  657.,  658.,  659.,  660.,  661.,  662.,
      663.,  664.,  665.,  666.,  667.,  668.,  669.,  670.,  671.,  672.,
      673.,  674.,  675.,  676.,  673.,  674.,  675.,  676.,  673.,  674.,
      675.,  676.,  673.,  674.,  675.,  676.,  673.,  674.,  675.,  676.,
      673.,  674.,  675.,  676.,  645.,  646.,  647.,  648.,  649.,  650.,
      651.,  652.,  653.,  654.,  655.,  656.,  657.,  658.,  659.,  660.,
      661.,  662.,  663.,  664.,  665.,  666.,  667.,  668.,  669.,  670.,
      671.,  672.,  673.,  674.,  675.,  676.,  673.,  674.,  675.,  676.,
      673.,  674.,  675.,  676.,  673.,  674.,  675.,  676.,  673.,  674.,
      675.,  676.,  673.,  674.,  675.,  676.,  957.,  958.,  959.,  960.,
      961.,  962.,  963.,  964.,  965.,  966.,  967.,  968.,  969.,  970.,
      971.,  972.,  973.,  974.,  975.,  976.,  977.,  978.,  979.,  980.,
      981.,  982.,  983.,  984.,  985.,  986.,  987.,  988.,  985.,  986.,
      987.,  988.,  985.,  986.,  987.,  988.,  985.,  986.,  987.,  988.,
      985.,  986.,  987.,  988.,  985.,  986.,  987.,  988.,  1009., 1010.,
      1011., 1012., 1013., 1014., 1015., 1016., 1017., 1018., 1019., 1020.,
      1021., 1022., 1023., 1024., 1025., 1026., 1027., 1028., 1029., 1030.,
      1031., 1032., 1033., 1034., 1035., 1036., 1037., 1038., 1039., 1040.,
      1037., 1038., 1039., 1040., 1037., 1038., 1039., 1040., 1037., 1038.,
      1039., 1040., 1037., 1038., 1039., 1040., 1037., 1038., 1039., 1040.,
      1061., 1062., 1063., 1064., 1065., 1066., 1067., 1068., 1069., 1070.,
      1071., 1072., 1073., 1074., 1075., 1076., 1077., 1078., 1079., 1080.,
      1081., 1082., 1083., 1084., 1085., 1086., 1087., 1088., 1089., 1090.,
      1091., 1092., 1089., 1090., 1091., 1092., 1089., 1090., 1091., 1092.,
      1089., 1090., 1091., 1092., 1089., 1090., 1091., 1092., 1089., 1090.,
      1091., 1092., 1113., 1114., 1115., 1116., 1117., 1118., 1119., 1120.,
      1121., 1122., 1123., 1124., 1125., 1126., 1127., 1128., 1129., 1130.,
      1131., 1132., 1133., 1134., 1135., 1136., 1137., 1138., 1139., 1140.,
      1141., 1142., 1143., 1144., 1141., 1142., 1143., 1144., 1141., 1142.,
      1143., 1144., 1141., 1142., 1143., 1144., 1141., 1142., 1143., 1144.,
      1141., 1142., 1143., 1144., 1165., 1166., 1167., 1168., 1169., 1170.,
      1171., 1172., 1173., 1174., 1175., 1176., 1177., 1178., 1179., 1180.,
      1181., 1182., 1183., 1184., 1185., 1186., 1187., 1188., 1189., 1190.,
      1191., 1192., 1193., 1194., 1195., 1196., 1193., 1194., 1195., 1196.,
      1193., 1194., 1195., 1196., 1193., 1194., 1195., 1196., 1193., 1194.,
      1195., 1196., 1193., 1194., 1195., 1196., 1217., 1218., 1219., 1220.,
      1221., 1222., 1223., 1224., 1225., 1226., 1227., 1228., 1229., 1230.,
      1231., 1232., 1233., 1234., 1235., 1236., 1237., 1238., 1239., 1240.,
      1241., 1242., 1243., 1244., 1245., 1246., 1247., 1248., 1245., 1246.,
      1247., 1248., 1245., 1246., 1247., 1248., 1245., 1246., 1247., 1248.,
      1245., 1246., 1247., 1248., 1245., 1246., 1247., 1248., 1269., 1270.,
      1271., 1272., 1273., 1274., 1275., 1276., 1277., 1278., 1279., 1280.,
      1281., 1282., 1283., 1284., 1285., 1286., 1287., 1288., 1289., 1290.,
      1291., 1292., 1293., 1294., 1295., 1296., 1297., 1298., 1299., 1300.,
      1297., 1298., 1299., 1300., 1297., 1298., 1299., 1300., 1297., 1298.,
      1299., 1300., 1297., 1298., 1299., 1300., 1297., 1298., 1299., 1300.,
      1321., 1322., 1323., 1324., 1325., 1326., 1327., 1328., 1329., 1330.,
      1331., 1332., 1333., 1334., 1335., 1336., 1337., 1338., 1339., 1340.,
      1341., 1342., 1343., 1344., 1345., 1346., 1347., 1348., 1349., 1350.,
      1351., 1352., 1349., 1350., 1351., 1352., 1349., 1350., 1351., 1352.,
      1349., 1350., 1351., 1352., 1349., 1350., 1351., 1352., 1349., 1350.,
      1351., 1352., 1321., 1322., 1323., 1324., 1325., 1326., 1327., 1328.,
      1329., 1330., 1331., 1332., 1333., 1334., 1335., 1336., 1337., 1338.,
      1339., 1340., 1341., 1342., 1343., 1344., 1345., 1346., 1347., 1348.,
      1349., 1350., 1351., 1352., 1349., 1350., 1351., 1352., 1349., 1350.,
      1351., 1352., 1349., 1350., 1351., 1352., 1349., 1350., 1351., 1352.,
      1349., 1350., 1351., 1352., 1321., 1322., 1323., 1324., 1325., 1326.,
      1327., 1328., 1329., 1330., 1331., 1332., 1333., 1334., 1335., 1336.,
      1337., 1338., 1339., 1340., 1341., 1342., 1343., 1344., 1345., 1346.,
      1347., 1348., 1349., 1350., 1351., 1352., 1349., 1350., 1351., 1352.,
      1349., 1350., 1351., 1352., 1349., 1350., 1351., 1352., 1349., 1350.,
      1351., 1352., 1349., 1350., 1351., 1352., 1321., 1322., 1323., 1324.,
      1325., 1326., 1327., 1328., 1329., 1330., 1331., 1332., 1333., 1334.,
      1335., 1336., 1337., 1338., 1339., 1340., 1341., 1342., 1343., 1344.,
      1345., 1346., 1347., 1348., 1349., 1350., 1351., 1352., 1349., 1350.,
      1351., 1352., 1349., 1350., 1351., 1352., 1349., 1350., 1351., 1352.,
      1349., 1350., 1351., 1352., 1349., 1350., 1351., 1352., 1321., 1322.,
      1323., 1324., 1325., 1326., 1327., 1328., 1329., 1330., 1331., 1332.,
      1333., 1334., 1335., 1336., 1337., 1338., 1339., 1340., 1341., 1342.,
      1343., 1344., 1345., 1346., 1347., 1348., 1349., 1350., 1351., 1352.,
      1349., 1350., 1351., 1352., 1349., 1350., 1351., 1352., 1349., 1350.,
      1351., 1352., 1349., 1350., 1351., 1352., 1349., 1350., 1351., 1352.,
      1321., 1322., 1323., 1324., 1325., 1326., 1327., 1328., 1329., 1330.,
      1331., 1332., 1333., 1334., 1335., 1336., 1337., 1338., 1339., 1340.,
      1341., 1342., 1343., 1344., 1345., 1346., 1347., 1348., 1349., 1350.,
      1351., 1352., 1349., 1350., 1351., 1352., 1349., 1350., 1351., 1352.,
      1349., 1350., 1351., 1352., 1349., 1350., 1351., 1352., 1349., 1350.,
      1351., 1352., 1633., 1634., 1635., 1636., 1637., 1638., 1639., 1640.,
      1641., 1642., 1643., 1644., 1645., 1646., 1647., 1648., 1649., 1650.,
      1651., 1652., 1653., 1654., 1655., 1656., 1657., 1658., 1659., 1660.,
      1661., 1662., 1663., 1664., 1661., 1662., 1663., 1664., 1661., 1662.,
      1663., 1664., 1661., 1662., 1663., 1664., 1661., 1662., 1663., 1664.,
      1661., 1662., 1663., 1664., 1685., 1686., 1687., 1688., 1689., 1690.,
      1691., 1692., 1693., 1694., 1695., 1696., 1697., 1698., 1699., 1700.,
      1701., 1702., 1703., 1704., 1705., 1706., 1707., 1708., 1709., 1710.,
      1711., 1712., 1713., 1714., 1715., 1716., 1713., 1714., 1715., 1716.,
      1713., 1714., 1715., 1716., 1713., 1714., 1715., 1716., 1713., 1714.,
      1715., 1716., 1713., 1714., 1715., 1716., 1737., 1738., 1739., 1740.,
      1741., 1742., 1743., 1744., 1745., 1746., 1747., 1748., 1749., 1750.,
      1751., 1752., 1753., 1754., 1755., 1756., 1757., 1758., 1759., 1760.,
      1761., 1762., 1763., 1764., 1765., 1766., 1767., 1768., 1765., 1766.,
      1767., 1768., 1765., 1766., 1767., 1768., 1765., 1766., 1767., 1768.,
      1765., 1766., 1767., 1768., 1765., 1766., 1767., 1768., 1789., 1790.,
      1791., 1792., 1793., 1794., 1795., 1796., 1797., 1798., 1799., 1800.,
      1801., 1802., 1803., 1804., 1805., 1806., 1807., 1808., 1809., 1810.,
      1811., 1812., 1813., 1814., 1815., 1816., 1817., 1818., 1819., 1820.,
      1817., 1818., 1819., 1820., 1817., 1818., 1819., 1820., 1817., 1818.,
      1819., 1820., 1817., 1818., 1819., 1820., 1817., 1818., 1819., 1820.,
      1841., 1842., 1843., 1844., 1845., 1846., 1847., 1848., 1849., 1850.,
      1851., 1852., 1853., 1854., 1855., 1856., 1857., 1858., 1859., 1860.,
      1861., 1862., 1863., 1864., 1865., 1866., 1867., 1868., 1869., 1870.,
      1871., 1872., 1869., 1870., 1871., 1872., 1869., 1870., 1871., 1872.,
      1869., 1870., 1871., 1872., 1869., 1870., 1871., 1872., 1869., 1870.,
      1871., 1872., 1893., 1894., 1895., 1896., 1897., 1898., 1899., 1900.,
      1901., 1902., 1903., 1904., 1905., 1906., 1907., 1908., 1909., 1910.,
      1911., 1912., 1913., 1914., 1915., 1916., 1917., 1918., 1919., 1920.,
      1921., 1922., 1923., 1924., 1921., 1922., 1923., 1924., 1921., 1922.,
      1923., 1924., 1921., 1922., 1923., 1924., 1921., 1922., 1923., 1924.,
      1921., 1922., 1923., 1924., 1945., 1946., 1947., 1948., 1949., 1950.,
      1951., 1952., 1953., 1954., 1955., 1956., 1957., 1958., 1959., 1960.,
      1961., 1962., 1963., 1964., 1965., 1966., 1967., 1968., 1969., 1970.,
      1971., 1972., 1973., 1974., 1975., 1976., 1973., 1974., 1975., 1976.,
      1973., 1974., 1975., 1976., 1973., 1974., 1975., 1976., 1973., 1974.,
      1975., 1976., 1973., 1974., 1975., 1976., 1997., 1998., 1999., 2000.,
      2001., 2002., 2003., 2004., 2005., 2006., 2007., 2008., 2009., 2010.,
      2011., 2012., 2013., 2014., 2015., 2016., 2017., 2018., 2019., 2020.,
      2021., 2022., 2023., 2024., 2025., 2026., 2027., 2028., 2025., 2026.,
      2027., 2028., 2025., 2026., 2027., 2028., 2025., 2026., 2027., 2028.,
      2025., 2026., 2027., 2028., 2025., 2026., 2027., 2028., 1997., 1998.,
      1999., 2000., 2001., 2002., 2003., 2004., 2005., 2006., 2007., 2008.,
      2009., 2010., 2011., 2012., 2013., 2014., 2015., 2016., 2017., 2018.,
      2019., 2020., 2021., 2022., 2023., 2024., 2025., 2026., 2027., 2028.,
      2025., 2026., 2027., 2028., 2025., 2026., 2027., 2028., 2025., 2026.,
      2027., 2028., 2025., 2026., 2027., 2028., 2025., 2026., 2027., 2028.,
      1997., 1998., 1999., 2000., 2001., 2002., 2003., 2004., 2005., 2006.,
      2007., 2008., 2009., 2010., 2011., 2012., 2013., 2014., 2015., 2016.,
      2017., 2018., 2019., 2020., 2021., 2022., 2023., 2024., 2025., 2026.,
      2027., 2028., 2025., 2026., 2027., 2028., 2025., 2026., 2027., 2028.,
      2025., 2026., 2027., 2028., 2025., 2026., 2027., 2028., 2025., 2026.,
      2027., 2028., 1997., 1998., 1999., 2000., 2001., 2002., 2003., 2004.,
      2005., 2006., 2007., 2008., 2009., 2010., 2011., 2012., 2013., 2014.,
      2015., 2016., 2017., 2018., 2019., 2020., 2021., 2022., 2023., 2024.,
      2025., 2026., 2027., 2028., 2025., 2026., 2027., 2028., 2025., 2026.,
      2027., 2028., 2025., 2026., 2027., 2028., 2025., 2026., 2027., 2028.,
      2025., 2026., 2027., 2028., 1997., 1998., 1999., 2000., 2001., 2002.,
      2003., 2004., 2005., 2006., 2007., 2008., 2009., 2010., 2011., 2012.,
      2013., 2014., 2015., 2016., 2017., 2018., 2019., 2020., 2021., 2022.,
      2023., 2024., 2025., 2026., 2027., 2028., 2025., 2026., 2027., 2028.,
      2025., 2026., 2027., 2028., 2025., 2026., 2027., 2028., 2025., 2026.,
      2027., 2028., 2025., 2026., 2027., 2028., 1997., 1998., 1999., 2000.,
      2001., 2002., 2003., 2004., 2005., 2006., 2007., 2008., 2009., 2010.,
      2011., 2012., 2013., 2014., 2015., 2016., 2017., 2018., 2019., 2020.,
      2021., 2022., 2023., 2024., 2025., 2026., 2027., 2028., 2025., 2026.,
      2027., 2028., 2025., 2026., 2027., 2028., 2025., 2026., 2027., 2028.,
      2025., 2026., 2027., 2028., 2025., 2026., 2027., 2028.};
  const std::array<int, 4> in_shape = {{3, 13, 13, 4}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, VALID3x13x13x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      561.,  562.,  563.,  564.,  565.,  566.,  567.,  568.,  569.,  570.,
      571.,  572.,  613.,  614.,  615.,  616.,  617.,  618.,  619.,  620.,
      621.,  622.,  623.,  624.,  665.,  666.,  667.,  668.,  669.,  670.,
      671.,  672.,  673.,  674.,  675.,  676.,  1237., 1238., 1239., 1240.,
      1241., 1242., 1243., 1244., 1245., 1246., 1247., 1248., 1289., 1290.,
      1291., 1292., 1293., 1294., 1295., 1296., 1297., 1298., 1299., 1300.,
      1341., 1342., 1343., 1344., 1345., 1346., 1347., 1348., 1349., 1350.,
      1351., 1352., 1913., 1914., 1915., 1916., 1917., 1918., 1919., 1920.,
      1921., 1922., 1923., 1924., 1965., 1966., 1967., 1968., 1969., 1970.,
      1971., 1972., 1973., 1974., 1975., 1976., 2017., 2018., 2019., 2020.,
      2021., 2022., 2023., 2024., 2025., 2026., 2027., 2028.};
  const std::array<int, 4> in_shape = {{3, 13, 13, 4}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, SAME3x13x14x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      76.,  77.,  78.,  79.,  80.,  81.,  82.,  83.,  84.,  84.,  84.,  84.,
      84.,  84.,  90.,  91.,  92.,  93.,  94.,  95.,  96.,  97.,  98.,  98.,
      98.,  98.,  98.,  98.,  104., 105., 106., 107., 108., 109., 110., 111.,
      112., 112., 112., 112., 112., 112., 118., 119., 120., 121., 122., 123.,
      124., 125., 126., 126., 126., 126., 126., 126., 132., 133., 134., 135.,
      136., 137., 138., 139., 140., 140., 140., 140., 140., 140., 146., 147.,
      148., 149., 150., 151., 152., 153., 154., 154., 154., 154., 154., 154.,
      160., 161., 162., 163., 164., 165., 166., 167., 168., 168., 168., 168.,
      168., 168., 174., 175., 176., 177., 178., 179., 180., 181., 182., 182.,
      182., 182., 182., 182., 174., 175., 176., 177., 178., 179., 180., 181.,
      182., 182., 182., 182., 182., 182., 174., 175., 176., 177., 178., 179.,
      180., 181., 182., 182., 182., 182., 182., 182., 174., 175., 176., 177.,
      178., 179., 180., 181., 182., 182., 182., 182., 182., 182., 174., 175.,
      176., 177., 178., 179., 180., 181., 182., 182., 182., 182., 182., 182.,
      174., 175., 176., 177., 178., 179., 180., 181., 182., 182., 182., 182.,
      182., 182., 258., 259., 260., 261., 262., 263., 264., 265., 266., 266.,
      266., 266., 266., 266., 272., 273., 274., 275., 276., 277., 278., 279.,
      280., 280., 280., 280., 280., 280., 286., 287., 288., 289., 290., 291.,
      292., 293., 294., 294., 294., 294., 294., 294., 300., 301., 302., 303.,
      304., 305., 306., 307., 308., 308., 308., 308., 308., 308., 314., 315.,
      316., 317., 318., 319., 320., 321., 322., 322., 322., 322., 322., 322.,
      328., 329., 330., 331., 332., 333., 334., 335., 336., 336., 336., 336.,
      336., 336., 342., 343., 344., 345., 346., 347., 348., 349., 350., 350.,
      350., 350., 350., 350., 356., 357., 358., 359., 360., 361., 362., 363.,
      364., 364., 364., 364., 364., 364., 356., 357., 358., 359., 360., 361.,
      362., 363., 364., 364., 364., 364., 364., 364., 356., 357., 358., 359.,
      360., 361., 362., 363., 364., 364., 364., 364., 364., 364., 356., 357.,
      358., 359., 360., 361., 362., 363., 364., 364., 364., 364., 364., 364.,
      356., 357., 358., 359., 360., 361., 362., 363., 364., 364., 364., 364.,
      364., 364., 356., 357., 358., 359., 360., 361., 362., 363., 364., 364.,
      364., 364., 364., 364., 440., 441., 442., 443., 444., 445., 446., 447.,
      448., 448., 448., 448., 448., 448., 454., 455., 456., 457., 458., 459.,
      460., 461., 462., 462., 462., 462., 462., 462., 468., 469., 470., 471.,
      472., 473., 474., 475., 476., 476., 476., 476., 476., 476., 482., 483.,
      484., 485., 486., 487., 488., 489., 490., 490., 490., 490., 490., 490.,
      496., 497., 498., 499., 500., 501., 502., 503., 504., 504., 504., 504.,
      504., 504., 510., 511., 512., 513., 514., 515., 516., 517., 518., 518.,
      518., 518., 518., 518., 524., 525., 526., 527., 528., 529., 530., 531.,
      532., 532., 532., 532., 532., 532., 538., 539., 540., 541., 542., 543.,
      544., 545., 546., 546., 546., 546., 546., 546., 538., 539., 540., 541.,
      542., 543., 544., 545., 546., 546., 546., 546., 546., 546., 538., 539.,
      540., 541., 542., 543., 544., 545., 546., 546., 546., 546., 546., 546.,
      538., 539., 540., 541., 542., 543., 544., 545., 546., 546., 546., 546.,
      546., 546., 538., 539., 540., 541., 542., 543., 544., 545., 546., 546.,
      546., 546., 546., 546., 538., 539., 540., 541., 542., 543., 544., 545.,
      546., 546., 546., 546., 546., 546.};
  const std::array<int, 4> in_shape = {{3, 13, 14, 1}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, VALID3x13x14x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      151., 152., 153., 154., 165., 166., 167., 168., 179., 180., 181., 182.,
      333., 334., 335., 336., 347., 348., 349., 350., 361., 362., 363., 364.,
      515., 516., 517., 518., 529., 530., 531., 532., 543., 544., 545., 546.};
  const std::array<int, 4> in_shape = {{3, 13, 14, 1}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, SAME3x13x14x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      151.,  152.,  153.,  154.,  155.,  156.,  157.,  158.,  159.,  160.,
      161.,  162.,  163.,  164.,  165.,  166.,  167.,  168.,  167.,  168.,
      167.,  168.,  167.,  168.,  167.,  168.,  167.,  168.,  179.,  180.,
      181.,  182.,  183.,  184.,  185.,  186.,  187.,  188.,  189.,  190.,
      191.,  192.,  193.,  194.,  195.,  196.,  195.,  196.,  195.,  196.,
      195.,  196.,  195.,  196.,  195.,  196.,  207.,  208.,  209.,  210.,
      211.,  212.,  213.,  214.,  215.,  216.,  217.,  218.,  219.,  220.,
      221.,  222.,  223.,  224.,  223.,  224.,  223.,  224.,  223.,  224.,
      223.,  224.,  223.,  224.,  235.,  236.,  237.,  238.,  239.,  240.,
      241.,  242.,  243.,  244.,  245.,  246.,  247.,  248.,  249.,  250.,
      251.,  252.,  251.,  252.,  251.,  252.,  251.,  252.,  251.,  252.,
      251.,  252.,  263.,  264.,  265.,  266.,  267.,  268.,  269.,  270.,
      271.,  272.,  273.,  274.,  275.,  276.,  277.,  278.,  279.,  280.,
      279.,  280.,  279.,  280.,  279.,  280.,  279.,  280.,  279.,  280.,
      291.,  292.,  293.,  294.,  295.,  296.,  297.,  298.,  299.,  300.,
      301.,  302.,  303.,  304.,  305.,  306.,  307.,  308.,  307.,  308.,
      307.,  308.,  307.,  308.,  307.,  308.,  307.,  308.,  319.,  320.,
      321.,  322.,  323.,  324.,  325.,  326.,  327.,  328.,  329.,  330.,
      331.,  332.,  333.,  334.,  335.,  336.,  335.,  336.,  335.,  336.,
      335.,  336.,  335.,  336.,  335.,  336.,  347.,  348.,  349.,  350.,
      351.,  352.,  353.,  354.,  355.,  356.,  357.,  358.,  359.,  360.,
      361.,  362.,  363.,  364.,  363.,  364.,  363.,  364.,  363.,  364.,
      363.,  364.,  363.,  364.,  347.,  348.,  349.,  350.,  351.,  352.,
      353.,  354.,  355.,  356.,  357.,  358.,  359.,  360.,  361.,  362.,
      363.,  364.,  363.,  364.,  363.,  364.,  363.,  364.,  363.,  364.,
      363.,  364.,  347.,  348.,  349.,  350.,  351.,  352.,  353.,  354.,
      355.,  356.,  357.,  358.,  359.,  360.,  361.,  362.,  363.,  364.,
      363.,  364.,  363.,  364.,  363.,  364.,  363.,  364.,  363.,  364.,
      347.,  348.,  349.,  350.,  351.,  352.,  353.,  354.,  355.,  356.,
      357.,  358.,  359.,  360.,  361.,  362.,  363.,  364.,  363.,  364.,
      363.,  364.,  363.,  364.,  363.,  364.,  363.,  364.,  347.,  348.,
      349.,  350.,  351.,  352.,  353.,  354.,  355.,  356.,  357.,  358.,
      359.,  360.,  361.,  362.,  363.,  364.,  363.,  364.,  363.,  364.,
      363.,  364.,  363.,  364.,  363.,  364.,  347.,  348.,  349.,  350.,
      351.,  352.,  353.,  354.,  355.,  356.,  357.,  358.,  359.,  360.,
      361.,  362.,  363.,  364.,  363.,  364.,  363.,  364.,  363.,  364.,
      363.,  364.,  363.,  364.,  515.,  516.,  517.,  518.,  519.,  520.,
      521.,  522.,  523.,  524.,  525.,  526.,  527.,  528.,  529.,  530.,
      531.,  532.,  531.,  532.,  531.,  532.,  531.,  532.,  531.,  532.,
      531.,  532.,  543.,  544.,  545.,  546.,  547.,  548.,  549.,  550.,
      551.,  552.,  553.,  554.,  555.,  556.,  557.,  558.,  559.,  560.,
      559.,  560.,  559.,  560.,  559.,  560.,  559.,  560.,  559.,  560.,
      571.,  572.,  573.,  574.,  575.,  576.,  577.,  578.,  579.,  580.,
      581.,  582.,  583.,  584.,  585.,  586.,  587.,  588.,  587.,  588.,
      587.,  588.,  587.,  588.,  587.,  588.,  587.,  588.,  599.,  600.,
      601.,  602.,  603.,  604.,  605.,  606.,  607.,  608.,  609.,  610.,
      611.,  612.,  613.,  614.,  615.,  616.,  615.,  616.,  615.,  616.,
      615.,  616.,  615.,  616.,  615.,  616.,  627.,  628.,  629.,  630.,
      631.,  632.,  633.,  634.,  635.,  636.,  637.,  638.,  639.,  640.,
      641.,  642.,  643.,  644.,  643.,  644.,  643.,  644.,  643.,  644.,
      643.,  644.,  643.,  644.,  655.,  656.,  657.,  658.,  659.,  660.,
      661.,  662.,  663.,  664.,  665.,  666.,  667.,  668.,  669.,  670.,
      671.,  672.,  671.,  672.,  671.,  672.,  671.,  672.,  671.,  672.,
      671.,  672.,  683.,  684.,  685.,  686.,  687.,  688.,  689.,  690.,
      691.,  692.,  693.,  694.,  695.,  696.,  697.,  698.,  699.,  700.,
      699.,  700.,  699.,  700.,  699.,  700.,  699.,  700.,  699.,  700.,
      711.,  712.,  713.,  714.,  715.,  716.,  717.,  718.,  719.,  720.,
      721.,  722.,  723.,  724.,  725.,  726.,  727.,  728.,  727.,  728.,
      727.,  728.,  727.,  728.,  727.,  728.,  727.,  728.,  711.,  712.,
      713.,  714.,  715.,  716.,  717.,  718.,  719.,  720.,  721.,  722.,
      723.,  724.,  725.,  726.,  727.,  728.,  727.,  728.,  727.,  728.,
      727.,  728.,  727.,  728.,  727.,  728.,  711.,  712.,  713.,  714.,
      715.,  716.,  717.,  718.,  719.,  720.,  721.,  722.,  723.,  724.,
      725.,  726.,  727.,  728.,  727.,  728.,  727.,  728.,  727.,  728.,
      727.,  728.,  727.,  728.,  711.,  712.,  713.,  714.,  715.,  716.,
      717.,  718.,  719.,  720.,  721.,  722.,  723.,  724.,  725.,  726.,
      727.,  728.,  727.,  728.,  727.,  728.,  727.,  728.,  727.,  728.,
      727.,  728.,  711.,  712.,  713.,  714.,  715.,  716.,  717.,  718.,
      719.,  720.,  721.,  722.,  723.,  724.,  725.,  726.,  727.,  728.,
      727.,  728.,  727.,  728.,  727.,  728.,  727.,  728.,  727.,  728.,
      711.,  712.,  713.,  714.,  715.,  716.,  717.,  718.,  719.,  720.,
      721.,  722.,  723.,  724.,  725.,  726.,  727.,  728.,  727.,  728.,
      727.,  728.,  727.,  728.,  727.,  728.,  727.,  728.,  879.,  880.,
      881.,  882.,  883.,  884.,  885.,  886.,  887.,  888.,  889.,  890.,
      891.,  892.,  893.,  894.,  895.,  896.,  895.,  896.,  895.,  896.,
      895.,  896.,  895.,  896.,  895.,  896.,  907.,  908.,  909.,  910.,
      911.,  912.,  913.,  914.,  915.,  916.,  917.,  918.,  919.,  920.,
      921.,  922.,  923.,  924.,  923.,  924.,  923.,  924.,  923.,  924.,
      923.,  924.,  923.,  924.,  935.,  936.,  937.,  938.,  939.,  940.,
      941.,  942.,  943.,  944.,  945.,  946.,  947.,  948.,  949.,  950.,
      951.,  952.,  951.,  952.,  951.,  952.,  951.,  952.,  951.,  952.,
      951.,  952.,  963.,  964.,  965.,  966.,  967.,  968.,  969.,  970.,
      971.,  972.,  973.,  974.,  975.,  976.,  977.,  978.,  979.,  980.,
      979.,  980.,  979.,  980.,  979.,  980.,  979.,  980.,  979.,  980.,
      991.,  992.,  993.,  994.,  995.,  996.,  997.,  998.,  999.,  1000.,
      1001., 1002., 1003., 1004., 1005., 1006., 1007., 1008., 1007., 1008.,
      1007., 1008., 1007., 1008., 1007., 1008., 1007., 1008., 1019., 1020.,
      1021., 1022., 1023., 1024., 1025., 1026., 1027., 1028., 1029., 1030.,
      1031., 1032., 1033., 1034., 1035., 1036., 1035., 1036., 1035., 1036.,
      1035., 1036., 1035., 1036., 1035., 1036., 1047., 1048., 1049., 1050.,
      1051., 1052., 1053., 1054., 1055., 1056., 1057., 1058., 1059., 1060.,
      1061., 1062., 1063., 1064., 1063., 1064., 1063., 1064., 1063., 1064.,
      1063., 1064., 1063., 1064., 1075., 1076., 1077., 1078., 1079., 1080.,
      1081., 1082., 1083., 1084., 1085., 1086., 1087., 1088., 1089., 1090.,
      1091., 1092., 1091., 1092., 1091., 1092., 1091., 1092., 1091., 1092.,
      1091., 1092., 1075., 1076., 1077., 1078., 1079., 1080., 1081., 1082.,
      1083., 1084., 1085., 1086., 1087., 1088., 1089., 1090., 1091., 1092.,
      1091., 1092., 1091., 1092., 1091., 1092., 1091., 1092., 1091., 1092.,
      1075., 1076., 1077., 1078., 1079., 1080., 1081., 1082., 1083., 1084.,
      1085., 1086., 1087., 1088., 1089., 1090., 1091., 1092., 1091., 1092.,
      1091., 1092., 1091., 1092., 1091., 1092., 1091., 1092., 1075., 1076.,
      1077., 1078., 1079., 1080., 1081., 1082., 1083., 1084., 1085., 1086.,
      1087., 1088., 1089., 1090., 1091., 1092., 1091., 1092., 1091., 1092.,
      1091., 1092., 1091., 1092., 1091., 1092., 1075., 1076., 1077., 1078.,
      1079., 1080., 1081., 1082., 1083., 1084., 1085., 1086., 1087., 1088.,
      1089., 1090., 1091., 1092., 1091., 1092., 1091., 1092., 1091., 1092.,
      1091., 1092., 1091., 1092., 1075., 1076., 1077., 1078., 1079., 1080.,
      1081., 1082., 1083., 1084., 1085., 1086., 1087., 1088., 1089., 1090.,
      1091., 1092., 1091., 1092., 1091., 1092., 1091., 1092., 1091., 1092.,
      1091., 1092.};
  const std::array<int, 4> in_shape = {{3, 13, 14, 2}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, VALID3x13x14x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      301.,  302.,  303.,  304.,  305.,  306.,  307.,  308.,  329.,
      330.,  331.,  332.,  333.,  334.,  335.,  336.,  357.,  358.,
      359.,  360.,  361.,  362.,  363.,  364.,  665.,  666.,  667.,
      668.,  669.,  670.,  671.,  672.,  693.,  694.,  695.,  696.,
      697.,  698.,  699.,  700.,  721.,  722.,  723.,  724.,  725.,
      726.,  727.,  728.,  1029., 1030., 1031., 1032., 1033., 1034.,
      1035., 1036., 1057., 1058., 1059., 1060., 1061., 1062., 1063.,
      1064., 1085., 1086., 1087., 1088., 1089., 1090., 1091., 1092.};
  const std::array<int, 4> in_shape = {{3, 13, 14, 2}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, SAME3x13x14x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      301.,  302.,  303.,  304.,  305.,  306.,  307.,  308.,  309.,  310.,
      311.,  312.,  313.,  314.,  315.,  316.,  317.,  318.,  319.,  320.,
      321.,  322.,  323.,  324.,  325.,  326.,  327.,  328.,  329.,  330.,
      331.,  332.,  333.,  334.,  335.,  336.,  333.,  334.,  335.,  336.,
      333.,  334.,  335.,  336.,  333.,  334.,  335.,  336.,  333.,  334.,
      335.,  336.,  333.,  334.,  335.,  336.,  357.,  358.,  359.,  360.,
      361.,  362.,  363.,  364.,  365.,  366.,  367.,  368.,  369.,  370.,
      371.,  372.,  373.,  374.,  375.,  376.,  377.,  378.,  379.,  380.,
      381.,  382.,  383.,  384.,  385.,  386.,  387.,  388.,  389.,  390.,
      391.,  392.,  389.,  390.,  391.,  392.,  389.,  390.,  391.,  392.,
      389.,  390.,  391.,  392.,  389.,  390.,  391.,  392.,  389.,  390.,
      391.,  392.,  413.,  414.,  415.,  416.,  417.,  418.,  419.,  420.,
      421.,  422.,  423.,  424.,  425.,  426.,  427.,  428.,  429.,  430.,
      431.,  432.,  433.,  434.,  435.,  436.,  437.,  438.,  439.,  440.,
      441.,  442.,  443.,  444.,  445.,  446.,  447.,  448.,  445.,  446.,
      447.,  448.,  445.,  446.,  447.,  448.,  445.,  446.,  447.,  448.,
      445.,  446.,  447.,  448.,  445.,  446.,  447.,  448.,  469.,  470.,
      471.,  472.,  473.,  474.,  475.,  476.,  477.,  478.,  479.,  480.,
      481.,  482.,  483.,  484.,  485.,  486.,  487.,  488.,  489.,  490.,
      491.,  492.,  493.,  494.,  495.,  496.,  497.,  498.,  499.,  500.,
      501.,  502.,  503.,  504.,  501.,  502.,  503.,  504.,  501.,  502.,
      503.,  504.,  501.,  502.,  503.,  504.,  501.,  502.,  503.,  504.,
      501.,  502.,  503.,  504.,  525.,  526.,  527.,  528.,  529.,  530.,
      531.,  532.,  533.,  534.,  535.,  536.,  537.,  538.,  539.,  540.,
      541.,  542.,  543.,  544.,  545.,  546.,  547.,  548.,  549.,  550.,
      551.,  552.,  553.,  554.,  555.,  556.,  557.,  558.,  559.,  560.,
      557.,  558.,  559.,  560.,  557.,  558.,  559.,  560.,  557.,  558.,
      559.,  560.,  557.,  558.,  559.,  560.,  557.,  558.,  559.,  560.,
      581.,  582.,  583.,  584.,  585.,  586.,  587.,  588.,  589.,  590.,
      591.,  592.,  593.,  594.,  595.,  596.,  597.,  598.,  599.,  600.,
      601.,  602.,  603.,  604.,  605.,  606.,  607.,  608.,  609.,  610.,
      611.,  612.,  613.,  614.,  615.,  616.,  613.,  614.,  615.,  616.,
      613.,  614.,  615.,  616.,  613.,  614.,  615.,  616.,  613.,  614.,
      615.,  616.,  613.,  614.,  615.,  616.,  637.,  638.,  639.,  640.,
      641.,  642.,  643.,  644.,  645.,  646.,  647.,  648.,  649.,  650.,
      651.,  652.,  653.,  654.,  655.,  656.,  657.,  658.,  659.,  660.,
      661.,  662.,  663.,  664.,  665.,  666.,  667.,  668.,  669.,  670.,
      671.,  672.,  669.,  670.,  671.,  672.,  669.,  670.,  671.,  672.,
      669.,  670.,  671.,  672.,  669.,  670.,  671.,  672.,  669.,  670.,
      671.,  672.,  693.,  694.,  695.,  696.,  697.,  698.,  699.,  700.,
      701.,  702.,  703.,  704.,  705.,  706.,  707.,  708.,  709.,  710.,
      711.,  712.,  713.,  714.,  715.,  716.,  717.,  718.,  719.,  720.,
      721.,  722.,  723.,  724.,  725.,  726.,  727.,  728.,  725.,  726.,
      727.,  728.,  725.,  726.,  727.,  728.,  725.,  726.,  727.,  728.,
      725.,  726.,  727.,  728.,  725.,  726.,  727.,  728.,  693.,  694.,
      695.,  696.,  697.,  698.,  699.,  700.,  701.,  702.,  703.,  704.,
      705.,  706.,  707.,  708.,  709.,  710.,  711.,  712.,  713.,  714.,
      715.,  716.,  717.,  718.,  719.,  720.,  721.,  722.,  723.,  724.,
      725.,  726.,  727.,  728.,  725.,  726.,  727.,  728.,  725.,  726.,
      727.,  728.,  725.,  726.,  727.,  728.,  725.,  726.,  727.,  728.,
      725.,  726.,  727.,  728.,  693.,  694.,  695.,  696.,  697.,  698.,
      699.,  700.,  701.,  702.,  703.,  704.,  705.,  706.,  707.,  708.,
      709.,  710.,  711.,  712.,  713.,  714.,  715.,  716.,  717.,  718.,
      719.,  720.,  721.,  722.,  723.,  724.,  725.,  726.,  727.,  728.,
      725.,  726.,  727.,  728.,  725.,  726.,  727.,  728.,  725.,  726.,
      727.,  728.,  725.,  726.,  727.,  728.,  725.,  726.,  727.,  728.,
      693.,  694.,  695.,  696.,  697.,  698.,  699.,  700.,  701.,  702.,
      703.,  704.,  705.,  706.,  707.,  708.,  709.,  710.,  711.,  712.,
      713.,  714.,  715.,  716.,  717.,  718.,  719.,  720.,  721.,  722.,
      723.,  724.,  725.,  726.,  727.,  728.,  725.,  726.,  727.,  728.,
      725.,  726.,  727.,  728.,  725.,  726.,  727.,  728.,  725.,  726.,
      727.,  728.,  725.,  726.,  727.,  728.,  693.,  694.,  695.,  696.,
      697.,  698.,  699.,  700.,  701.,  702.,  703.,  704.,  705.,  706.,
      707.,  708.,  709.,  710.,  711.,  712.,  713.,  714.,  715.,  716.,
      717.,  718.,  719.,  720.,  721.,  722.,  723.,  724.,  725.,  726.,
      727.,  728.,  725.,  726.,  727.,  728.,  725.,  726.,  727.,  728.,
      725.,  726.,  727.,  728.,  725.,  726.,  727.,  728.,  725.,  726.,
      727.,  728.,  693.,  694.,  695.,  696.,  697.,  698.,  699.,  700.,
      701.,  702.,  703.,  704.,  705.,  706.,  707.,  708.,  709.,  710.,
      711.,  712.,  713.,  714.,  715.,  716.,  717.,  718.,  719.,  720.,
      721.,  722.,  723.,  724.,  725.,  726.,  727.,  728.,  725.,  726.,
      727.,  728.,  725.,  726.,  727.,  728.,  725.,  726.,  727.,  728.,
      725.,  726.,  727.,  728.,  725.,  726.,  727.,  728.,  1029., 1030.,
      1031., 1032., 1033., 1034., 1035., 1036., 1037., 1038., 1039., 1040.,
      1041., 1042., 1043., 1044., 1045., 1046., 1047., 1048., 1049., 1050.,
      1051., 1052., 1053., 1054., 1055., 1056., 1057., 1058., 1059., 1060.,
      1061., 1062., 1063., 1064., 1061., 1062., 1063., 1064., 1061., 1062.,
      1063., 1064., 1061., 1062., 1063., 1064., 1061., 1062., 1063., 1064.,
      1061., 1062., 1063., 1064., 1085., 1086., 1087., 1088., 1089., 1090.,
      1091., 1092., 1093., 1094., 1095., 1096., 1097., 1098., 1099., 1100.,
      1101., 1102., 1103., 1104., 1105., 1106., 1107., 1108., 1109., 1110.,
      1111., 1112., 1113., 1114., 1115., 1116., 1117., 1118., 1119., 1120.,
      1117., 1118., 1119., 1120., 1117., 1118., 1119., 1120., 1117., 1118.,
      1119., 1120., 1117., 1118., 1119., 1120., 1117., 1118., 1119., 1120.,
      1141., 1142., 1143., 1144., 1145., 1146., 1147., 1148., 1149., 1150.,
      1151., 1152., 1153., 1154., 1155., 1156., 1157., 1158., 1159., 1160.,
      1161., 1162., 1163., 1164., 1165., 1166., 1167., 1168., 1169., 1170.,
      1171., 1172., 1173., 1174., 1175., 1176., 1173., 1174., 1175., 1176.,
      1173., 1174., 1175., 1176., 1173., 1174., 1175., 1176., 1173., 1174.,
      1175., 1176., 1173., 1174., 1175., 1176., 1197., 1198., 1199., 1200.,
      1201., 1202., 1203., 1204., 1205., 1206., 1207., 1208., 1209., 1210.,
      1211., 1212., 1213., 1214., 1215., 1216., 1217., 1218., 1219., 1220.,
      1221., 1222., 1223., 1224., 1225., 1226., 1227., 1228., 1229., 1230.,
      1231., 1232., 1229., 1230., 1231., 1232., 1229., 1230., 1231., 1232.,
      1229., 1230., 1231., 1232., 1229., 1230., 1231., 1232., 1229., 1230.,
      1231., 1232., 1253., 1254., 1255., 1256., 1257., 1258., 1259., 1260.,
      1261., 1262., 1263., 1264., 1265., 1266., 1267., 1268., 1269., 1270.,
      1271., 1272., 1273., 1274., 1275., 1276., 1277., 1278., 1279., 1280.,
      1281., 1282., 1283., 1284., 1285., 1286., 1287., 1288., 1285., 1286.,
      1287., 1288., 1285., 1286., 1287., 1288., 1285., 1286., 1287., 1288.,
      1285., 1286., 1287., 1288., 1285., 1286., 1287., 1288., 1309., 1310.,
      1311., 1312., 1313., 1314., 1315., 1316., 1317., 1318., 1319., 1320.,
      1321., 1322., 1323., 1324., 1325., 1326., 1327., 1328., 1329., 1330.,
      1331., 1332., 1333., 1334., 1335., 1336., 1337., 1338., 1339., 1340.,
      1341., 1342., 1343., 1344., 1341., 1342., 1343., 1344., 1341., 1342.,
      1343., 1344., 1341., 1342., 1343., 1344., 1341., 1342., 1343., 1344.,
      1341., 1342., 1343., 1344., 1365., 1366., 1367., 1368., 1369., 1370.,
      1371., 1372., 1373., 1374., 1375., 1376., 1377., 1378., 1379., 1380.,
      1381., 1382., 1383., 1384., 1385., 1386., 1387., 1388., 1389., 1390.,
      1391., 1392., 1393., 1394., 1395., 1396., 1397., 1398., 1399., 1400.,
      1397., 1398., 1399., 1400., 1397., 1398., 1399., 1400., 1397., 1398.,
      1399., 1400., 1397., 1398., 1399., 1400., 1397., 1398., 1399., 1400.,
      1421., 1422., 1423., 1424., 1425., 1426., 1427., 1428., 1429., 1430.,
      1431., 1432., 1433., 1434., 1435., 1436., 1437., 1438., 1439., 1440.,
      1441., 1442., 1443., 1444., 1445., 1446., 1447., 1448., 1449., 1450.,
      1451., 1452., 1453., 1454., 1455., 1456., 1453., 1454., 1455., 1456.,
      1453., 1454., 1455., 1456., 1453., 1454., 1455., 1456., 1453., 1454.,
      1455., 1456., 1453., 1454., 1455., 1456., 1421., 1422., 1423., 1424.,
      1425., 1426., 1427., 1428., 1429., 1430., 1431., 1432., 1433., 1434.,
      1435., 1436., 1437., 1438., 1439., 1440., 1441., 1442., 1443., 1444.,
      1445., 1446., 1447., 1448., 1449., 1450., 1451., 1452., 1453., 1454.,
      1455., 1456., 1453., 1454., 1455., 1456., 1453., 1454., 1455., 1456.,
      1453., 1454., 1455., 1456., 1453., 1454., 1455., 1456., 1453., 1454.,
      1455., 1456., 1421., 1422., 1423., 1424., 1425., 1426., 1427., 1428.,
      1429., 1430., 1431., 1432., 1433., 1434., 1435., 1436., 1437., 1438.,
      1439., 1440., 1441., 1442., 1443., 1444., 1445., 1446., 1447., 1448.,
      1449., 1450., 1451., 1452., 1453., 1454., 1455., 1456., 1453., 1454.,
      1455., 1456., 1453., 1454., 1455., 1456., 1453., 1454., 1455., 1456.,
      1453., 1454., 1455., 1456., 1453., 1454., 1455., 1456., 1421., 1422.,
      1423., 1424., 1425., 1426., 1427., 1428., 1429., 1430., 1431., 1432.,
      1433., 1434., 1435., 1436., 1437., 1438., 1439., 1440., 1441., 1442.,
      1443., 1444., 1445., 1446., 1447., 1448., 1449., 1450., 1451., 1452.,
      1453., 1454., 1455., 1456., 1453., 1454., 1455., 1456., 1453., 1454.,
      1455., 1456., 1453., 1454., 1455., 1456., 1453., 1454., 1455., 1456.,
      1453., 1454., 1455., 1456., 1421., 1422., 1423., 1424., 1425., 1426.,
      1427., 1428., 1429., 1430., 1431., 1432., 1433., 1434., 1435., 1436.,
      1437., 1438., 1439., 1440., 1441., 1442., 1443., 1444., 1445., 1446.,
      1447., 1448., 1449., 1450., 1451., 1452., 1453., 1454., 1455., 1456.,
      1453., 1454., 1455., 1456., 1453., 1454., 1455., 1456., 1453., 1454.,
      1455., 1456., 1453., 1454., 1455., 1456., 1453., 1454., 1455., 1456.,
      1421., 1422., 1423., 1424., 1425., 1426., 1427., 1428., 1429., 1430.,
      1431., 1432., 1433., 1434., 1435., 1436., 1437., 1438., 1439., 1440.,
      1441., 1442., 1443., 1444., 1445., 1446., 1447., 1448., 1449., 1450.,
      1451., 1452., 1453., 1454., 1455., 1456., 1453., 1454., 1455., 1456.,
      1453., 1454., 1455., 1456., 1453., 1454., 1455., 1456., 1453., 1454.,
      1455., 1456., 1453., 1454., 1455., 1456., 1757., 1758., 1759., 1760.,
      1761., 1762., 1763., 1764., 1765., 1766., 1767., 1768., 1769., 1770.,
      1771., 1772., 1773., 1774., 1775., 1776., 1777., 1778., 1779., 1780.,
      1781., 1782., 1783., 1784., 1785., 1786., 1787., 1788., 1789., 1790.,
      1791., 1792., 1789., 1790., 1791., 1792., 1789., 1790., 1791., 1792.,
      1789., 1790., 1791., 1792., 1789., 1790., 1791., 1792., 1789., 1790.,
      1791., 1792., 1813., 1814., 1815., 1816., 1817., 1818., 1819., 1820.,
      1821., 1822., 1823., 1824., 1825., 1826., 1827., 1828., 1829., 1830.,
      1831., 1832., 1833., 1834., 1835., 1836., 1837., 1838., 1839., 1840.,
      1841., 1842., 1843., 1844., 1845., 1846., 1847., 1848., 1845., 1846.,
      1847., 1848., 1845., 1846., 1847., 1848., 1845., 1846., 1847., 1848.,
      1845., 1846., 1847., 1848., 1845., 1846., 1847., 1848., 1869., 1870.,
      1871., 1872., 1873., 1874., 1875., 1876., 1877., 1878., 1879., 1880.,
      1881., 1882., 1883., 1884., 1885., 1886., 1887., 1888., 1889., 1890.,
      1891., 1892., 1893., 1894., 1895., 1896., 1897., 1898., 1899., 1900.,
      1901., 1902., 1903., 1904., 1901., 1902., 1903., 1904., 1901., 1902.,
      1903., 1904., 1901., 1902., 1903., 1904., 1901., 1902., 1903., 1904.,
      1901., 1902., 1903., 1904., 1925., 1926., 1927., 1928., 1929., 1930.,
      1931., 1932., 1933., 1934., 1935., 1936., 1937., 1938., 1939., 1940.,
      1941., 1942., 1943., 1944., 1945., 1946., 1947., 1948., 1949., 1950.,
      1951., 1952., 1953., 1954., 1955., 1956., 1957., 1958., 1959., 1960.,
      1957., 1958., 1959., 1960., 1957., 1958., 1959., 1960., 1957., 1958.,
      1959., 1960., 1957., 1958., 1959., 1960., 1957., 1958., 1959., 1960.,
      1981., 1982., 1983., 1984., 1985., 1986., 1987., 1988., 1989., 1990.,
      1991., 1992., 1993., 1994., 1995., 1996., 1997., 1998., 1999., 2000.,
      2001., 2002., 2003., 2004., 2005., 2006., 2007., 2008., 2009., 2010.,
      2011., 2012., 2013., 2014., 2015., 2016., 2013., 2014., 2015., 2016.,
      2013., 2014., 2015., 2016., 2013., 2014., 2015., 2016., 2013., 2014.,
      2015., 2016., 2013., 2014., 2015., 2016., 2037., 2038., 2039., 2040.,
      2041., 2042., 2043., 2044., 2045., 2046., 2047., 2048., 2045., 2046.,
      2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048.,
      2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046.,
      2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048.,
      2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048., 2013., 2014.,
      2015., 2016., 2037., 2038., 2039., 2040., 2041., 2042., 2043., 2044.,
      2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046.,
      2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048.,
      2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046.,
      2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048.,
      2045., 2046., 2047., 2048., 2013., 2014., 2015., 2016., 2037., 2038.,
      2039., 2040., 2041., 2042., 2043., 2044., 2045., 2046., 2047., 2048.,
      2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046.,
      2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048.,
      2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046.,
      2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048.,
      2013., 2014., 2015., 2016., 2037., 2038., 2039., 2040., 2041., 2042.,
      2043., 2044., 2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048.,
      2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046.,
      2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048.,
      2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046.,
      2047., 2048., 2045., 2046., 2047., 2048., 2013., 2014., 2015., 2016.,
      2037., 2038., 2039., 2040., 2041., 2042., 2043., 2044., 2045., 2046.,
      2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048.,
      2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046.,
      2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048.,
      2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046.,
      2047., 2048., 2013., 2014., 2015., 2016., 2037., 2038., 2039., 2040.,
      2041., 2042., 2043., 2044., 2045., 2046., 2047., 2048., 2045., 2046.,
      2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048.,
      2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046.,
      2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048.,
      2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048., 2013., 2014.,
      2015., 2016., 2037., 2038., 2039., 2040., 2041., 2042., 2043., 2044.,
      2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046.,
      2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048.,
      2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046.,
      2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048.,
      2045., 2046., 2047., 2048., 2013., 2014., 2015., 2016., 2037., 2038.,
      2039., 2040., 2041., 2042., 2043., 2044., 2045., 2046., 2047., 2048.,
      2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046.,
      2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048.,
      2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046.,
      2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048.,
      2013., 2014., 2015., 2016.};
  const std::array<int, 4> in_shape = {{3, 13, 14, 4}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, VALID3x13x14x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      601.,  602.,  603.,  604.,  605.,  606.,  607.,  608.,  609.,  610.,
      611.,  612.,  613.,  614.,  615.,  616.,  657.,  658.,  659.,  660.,
      661.,  662.,  663.,  664.,  665.,  666.,  667.,  668.,  669.,  670.,
      671.,  672.,  713.,  714.,  715.,  716.,  717.,  718.,  719.,  720.,
      721.,  722.,  723.,  724.,  725.,  726.,  727.,  728.,  1329., 1330.,
      1331., 1332., 1333., 1334., 1335., 1336., 1337., 1338., 1339., 1340.,
      1341., 1342., 1343., 1344., 1385., 1386., 1387., 1388., 1389., 1390.,
      1391., 1392., 1393., 1394., 1395., 1396., 1397., 1398., 1399., 1400.,
      1441., 1442., 1443., 1444., 1445., 1446., 1447., 1448., 1449., 1450.,
      1451., 1452., 1453., 1454., 1455., 1456., 2045., 2046., 2047., 2048.,
      2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046.,
      2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048.,
      2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046.,
      2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048.,
      2045., 2046., 2047., 2048.};
  const std::array<int, 4> in_shape = {{3, 13, 14, 4}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, SAME3x14x12x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      66.,  67.,  68.,  69.,  70.,  71.,  72.,  72.,  72.,  72.,  72.,  72.,
      78.,  79.,  80.,  81.,  82.,  83.,  84.,  84.,  84.,  84.,  84.,  84.,
      90.,  91.,  92.,  93.,  94.,  95.,  96.,  96.,  96.,  96.,  96.,  96.,
      102., 103., 104., 105., 106., 107., 108., 108., 108., 108., 108., 108.,
      114., 115., 116., 117., 118., 119., 120., 120., 120., 120., 120., 120.,
      126., 127., 128., 129., 130., 131., 132., 132., 132., 132., 132., 132.,
      138., 139., 140., 141., 142., 143., 144., 144., 144., 144., 144., 144.,
      150., 151., 152., 153., 154., 155., 156., 156., 156., 156., 156., 156.,
      162., 163., 164., 165., 166., 167., 168., 168., 168., 168., 168., 168.,
      162., 163., 164., 165., 166., 167., 168., 168., 168., 168., 168., 168.,
      162., 163., 164., 165., 166., 167., 168., 168., 168., 168., 168., 168.,
      162., 163., 164., 165., 166., 167., 168., 168., 168., 168., 168., 168.,
      162., 163., 164., 165., 166., 167., 168., 168., 168., 168., 168., 168.,
      162., 163., 164., 165., 166., 167., 168., 168., 168., 168., 168., 168.,
      234., 235., 236., 237., 238., 239., 240., 240., 240., 240., 240., 240.,
      246., 247., 248., 249., 250., 251., 252., 252., 252., 252., 252., 252.,
      258., 259., 260., 261., 262., 263., 264., 264., 264., 264., 264., 264.,
      270., 271., 272., 273., 274., 275., 276., 276., 276., 276., 276., 276.,
      282., 283., 284., 285., 286., 287., 288., 288., 288., 288., 288., 288.,
      294., 295., 296., 297., 298., 299., 300., 300., 300., 300., 300., 300.,
      306., 307., 308., 309., 310., 311., 312., 312., 312., 312., 312., 312.,
      318., 319., 320., 321., 322., 323., 324., 324., 324., 324., 324., 324.,
      330., 331., 332., 333., 334., 335., 336., 336., 336., 336., 336., 336.,
      330., 331., 332., 333., 334., 335., 336., 336., 336., 336., 336., 336.,
      330., 331., 332., 333., 334., 335., 336., 336., 336., 336., 336., 336.,
      330., 331., 332., 333., 334., 335., 336., 336., 336., 336., 336., 336.,
      330., 331., 332., 333., 334., 335., 336., 336., 336., 336., 336., 336.,
      330., 331., 332., 333., 334., 335., 336., 336., 336., 336., 336., 336.,
      402., 403., 404., 405., 406., 407., 408., 408., 408., 408., 408., 408.,
      414., 415., 416., 417., 418., 419., 420., 420., 420., 420., 420., 420.,
      426., 427., 428., 429., 430., 431., 432., 432., 432., 432., 432., 432.,
      438., 439., 440., 441., 442., 443., 444., 444., 444., 444., 444., 444.,
      450., 451., 452., 453., 454., 455., 456., 456., 456., 456., 456., 456.,
      462., 463., 464., 465., 466., 467., 468., 468., 468., 468., 468., 468.,
      474., 475., 476., 477., 478., 479., 480., 480., 480., 480., 480., 480.,
      486., 487., 488., 489., 490., 491., 492., 492., 492., 492., 492., 492.,
      498., 499., 500., 501., 502., 503., 504., 504., 504., 504., 504., 504.,
      498., 499., 500., 501., 502., 503., 504., 504., 504., 504., 504., 504.,
      498., 499., 500., 501., 502., 503., 504., 504., 504., 504., 504., 504.,
      498., 499., 500., 501., 502., 503., 504., 504., 504., 504., 504., 504.,
      498., 499., 500., 501., 502., 503., 504., 504., 504., 504., 504., 504.,
      498., 499., 500., 501., 502., 503., 504., 504., 504., 504., 504., 504.};
  const std::array<int, 4> in_shape = {{3, 14, 12, 1}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, VALID3x14x12x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      131., 132., 143., 144., 155., 156., 167., 168., 299., 300., 311., 312.,
      323., 324., 335., 336., 467., 468., 479., 480., 491., 492., 503., 504.};
  const std::array<int, 4> in_shape = {{3, 14, 12, 1}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, SAME3x14x12x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      131.,  132.,  133.,  134.,  135.,  136.,  137.,  138.,  139.,  140.,
      141.,  142.,  143.,  144.,  143.,  144.,  143.,  144.,  143.,  144.,
      143.,  144.,  143.,  144.,  155.,  156.,  157.,  158.,  159.,  160.,
      161.,  162.,  163.,  164.,  165.,  166.,  167.,  168.,  167.,  168.,
      167.,  168.,  167.,  168.,  167.,  168.,  167.,  168.,  179.,  180.,
      181.,  182.,  183.,  184.,  185.,  186.,  187.,  188.,  189.,  190.,
      191.,  192.,  191.,  192.,  191.,  192.,  191.,  192.,  191.,  192.,
      191.,  192.,  203.,  204.,  205.,  206.,  207.,  208.,  209.,  210.,
      211.,  212.,  213.,  214.,  215.,  216.,  215.,  216.,  215.,  216.,
      215.,  216.,  215.,  216.,  215.,  216.,  227.,  228.,  229.,  230.,
      231.,  232.,  233.,  234.,  235.,  236.,  237.,  238.,  239.,  240.,
      239.,  240.,  239.,  240.,  239.,  240.,  239.,  240.,  239.,  240.,
      251.,  252.,  253.,  254.,  255.,  256.,  257.,  258.,  259.,  260.,
      261.,  262.,  263.,  264.,  263.,  264.,  263.,  264.,  263.,  264.,
      263.,  264.,  263.,  264.,  275.,  276.,  277.,  278.,  279.,  280.,
      281.,  282.,  283.,  284.,  285.,  286.,  287.,  288.,  287.,  288.,
      287.,  288.,  287.,  288.,  287.,  288.,  287.,  288.,  299.,  300.,
      301.,  302.,  303.,  304.,  305.,  306.,  307.,  308.,  309.,  310.,
      311.,  312.,  311.,  312.,  311.,  312.,  311.,  312.,  311.,  312.,
      311.,  312.,  323.,  324.,  325.,  326.,  327.,  328.,  329.,  330.,
      331.,  332.,  333.,  334.,  335.,  336.,  335.,  336.,  335.,  336.,
      335.,  336.,  335.,  336.,  335.,  336.,  323.,  324.,  325.,  326.,
      327.,  328.,  329.,  330.,  331.,  332.,  333.,  334.,  335.,  336.,
      335.,  336.,  335.,  336.,  335.,  336.,  335.,  336.,  335.,  336.,
      323.,  324.,  325.,  326.,  327.,  328.,  329.,  330.,  331.,  332.,
      333.,  334.,  335.,  336.,  335.,  336.,  335.,  336.,  335.,  336.,
      335.,  336.,  335.,  336.,  323.,  324.,  325.,  326.,  327.,  328.,
      329.,  330.,  331.,  332.,  333.,  334.,  335.,  336.,  335.,  336.,
      335.,  336.,  335.,  336.,  335.,  336.,  335.,  336.,  323.,  324.,
      325.,  326.,  327.,  328.,  329.,  330.,  331.,  332.,  333.,  334.,
      335.,  336.,  335.,  336.,  335.,  336.,  335.,  336.,  335.,  336.,
      335.,  336.,  323.,  324.,  325.,  326.,  327.,  328.,  329.,  330.,
      331.,  332.,  333.,  334.,  335.,  336.,  335.,  336.,  335.,  336.,
      335.,  336.,  335.,  336.,  335.,  336.,  467.,  468.,  469.,  470.,
      471.,  472.,  473.,  474.,  475.,  476.,  477.,  478.,  479.,  480.,
      479.,  480.,  479.,  480.,  479.,  480.,  479.,  480.,  479.,  480.,
      491.,  492.,  493.,  494.,  495.,  496.,  497.,  498.,  499.,  500.,
      501.,  502.,  503.,  504.,  503.,  504.,  503.,  504.,  503.,  504.,
      503.,  504.,  503.,  504.,  515.,  516.,  517.,  518.,  519.,  520.,
      521.,  522.,  523.,  524.,  525.,  526.,  527.,  528.,  527.,  528.,
      527.,  528.,  527.,  528.,  527.,  528.,  527.,  528.,  539.,  540.,
      541.,  542.,  543.,  544.,  545.,  546.,  547.,  548.,  549.,  550.,
      551.,  552.,  551.,  552.,  551.,  552.,  551.,  552.,  551.,  552.,
      551.,  552.,  563.,  564.,  565.,  566.,  567.,  568.,  569.,  570.,
      571.,  572.,  573.,  574.,  575.,  576.,  575.,  576.,  575.,  576.,
      575.,  576.,  575.,  576.,  575.,  576.,  587.,  588.,  589.,  590.,
      591.,  592.,  593.,  594.,  595.,  596.,  597.,  598.,  599.,  600.,
      599.,  600.,  599.,  600.,  599.,  600.,  599.,  600.,  599.,  600.,
      611.,  612.,  613.,  614.,  615.,  616.,  617.,  618.,  619.,  620.,
      621.,  622.,  623.,  624.,  623.,  624.,  623.,  624.,  623.,  624.,
      623.,  624.,  623.,  624.,  635.,  636.,  637.,  638.,  639.,  640.,
      641.,  642.,  643.,  644.,  645.,  646.,  647.,  648.,  647.,  648.,
      647.,  648.,  647.,  648.,  647.,  648.,  647.,  648.,  659.,  660.,
      661.,  662.,  663.,  664.,  665.,  666.,  667.,  668.,  669.,  670.,
      671.,  672.,  671.,  672.,  671.,  672.,  671.,  672.,  671.,  672.,
      671.,  672.,  659.,  660.,  661.,  662.,  663.,  664.,  665.,  666.,
      667.,  668.,  669.,  670.,  671.,  672.,  671.,  672.,  671.,  672.,
      671.,  672.,  671.,  672.,  671.,  672.,  659.,  660.,  661.,  662.,
      663.,  664.,  665.,  666.,  667.,  668.,  669.,  670.,  671.,  672.,
      671.,  672.,  671.,  672.,  671.,  672.,  671.,  672.,  671.,  672.,
      659.,  660.,  661.,  662.,  663.,  664.,  665.,  666.,  667.,  668.,
      669.,  670.,  671.,  672.,  671.,  672.,  671.,  672.,  671.,  672.,
      671.,  672.,  671.,  672.,  659.,  660.,  661.,  662.,  663.,  664.,
      665.,  666.,  667.,  668.,  669.,  670.,  671.,  672.,  671.,  672.,
      671.,  672.,  671.,  672.,  671.,  672.,  671.,  672.,  659.,  660.,
      661.,  662.,  663.,  664.,  665.,  666.,  667.,  668.,  669.,  670.,
      671.,  672.,  671.,  672.,  671.,  672.,  671.,  672.,  671.,  672.,
      671.,  672.,  803.,  804.,  805.,  806.,  807.,  808.,  809.,  810.,
      811.,  812.,  813.,  814.,  815.,  816.,  815.,  816.,  815.,  816.,
      815.,  816.,  815.,  816.,  815.,  816.,  827.,  828.,  829.,  830.,
      831.,  832.,  833.,  834.,  835.,  836.,  837.,  838.,  839.,  840.,
      839.,  840.,  839.,  840.,  839.,  840.,  839.,  840.,  839.,  840.,
      851.,  852.,  853.,  854.,  855.,  856.,  857.,  858.,  859.,  860.,
      861.,  862.,  863.,  864.,  863.,  864.,  863.,  864.,  863.,  864.,
      863.,  864.,  863.,  864.,  875.,  876.,  877.,  878.,  879.,  880.,
      881.,  882.,  883.,  884.,  885.,  886.,  887.,  888.,  887.,  888.,
      887.,  888.,  887.,  888.,  887.,  888.,  887.,  888.,  899.,  900.,
      901.,  902.,  903.,  904.,  905.,  906.,  907.,  908.,  909.,  910.,
      911.,  912.,  911.,  912.,  911.,  912.,  911.,  912.,  911.,  912.,
      911.,  912.,  923.,  924.,  925.,  926.,  927.,  928.,  929.,  930.,
      931.,  932.,  933.,  934.,  935.,  936.,  935.,  936.,  935.,  936.,
      935.,  936.,  935.,  936.,  935.,  936.,  947.,  948.,  949.,  950.,
      951.,  952.,  953.,  954.,  955.,  956.,  957.,  958.,  959.,  960.,
      959.,  960.,  959.,  960.,  959.,  960.,  959.,  960.,  959.,  960.,
      971.,  972.,  973.,  974.,  975.,  976.,  977.,  978.,  979.,  980.,
      981.,  982.,  983.,  984.,  983.,  984.,  983.,  984.,  983.,  984.,
      983.,  984.,  983.,  984.,  995.,  996.,  997.,  998.,  999.,  1000.,
      1001., 1002., 1003., 1004., 1005., 1006., 1007., 1008., 1007., 1008.,
      1007., 1008., 1007., 1008., 1007., 1008., 1007., 1008., 995.,  996.,
      997.,  998.,  999.,  1000., 1001., 1002., 1003., 1004., 1005., 1006.,
      1007., 1008., 1007., 1008., 1007., 1008., 1007., 1008., 1007., 1008.,
      1007., 1008., 995.,  996.,  997.,  998.,  999.,  1000., 1001., 1002.,
      1003., 1004., 1005., 1006., 1007., 1008., 1007., 1008., 1007., 1008.,
      1007., 1008., 1007., 1008., 1007., 1008., 995.,  996.,  997.,  998.,
      999.,  1000., 1001., 1002., 1003., 1004., 1005., 1006., 1007., 1008.,
      1007., 1008., 1007., 1008., 1007., 1008., 1007., 1008., 1007., 1008.,
      995.,  996.,  997.,  998.,  999.,  1000., 1001., 1002., 1003., 1004.,
      1005., 1006., 1007., 1008., 1007., 1008., 1007., 1008., 1007., 1008.,
      1007., 1008., 1007., 1008., 995.,  996.,  997.,  998.,  999.,  1000.,
      1001., 1002., 1003., 1004., 1005., 1006., 1007., 1008., 1007., 1008.,
      1007., 1008., 1007., 1008., 1007., 1008., 1007., 1008.};
  const std::array<int, 4> in_shape = {{3, 14, 12, 2}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, VALID3x14x12x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      261., 262., 263., 264., 285.,  286.,  287.,  288., 309., 310.,
      311., 312., 333., 334., 335.,  336.,  597.,  598., 599., 600.,
      621., 622., 623., 624., 645.,  646.,  647.,  648., 669., 670.,
      671., 672., 933., 934., 935.,  936.,  957.,  958., 959., 960.,
      981., 982., 983., 984., 1005., 1006., 1007., 1008.};
  const std::array<int, 4> in_shape = {{3, 14, 12, 2}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, SAME3x14x12x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      261.,  262.,  263.,  264.,  265.,  266.,  267.,  268.,  269.,  270.,
      271.,  272.,  273.,  274.,  275.,  276.,  277.,  278.,  279.,  280.,
      281.,  282.,  283.,  284.,  285.,  286.,  287.,  288.,  285.,  286.,
      287.,  288.,  285.,  286.,  287.,  288.,  285.,  286.,  287.,  288.,
      285.,  286.,  287.,  288.,  285.,  286.,  287.,  288.,  309.,  310.,
      311.,  312.,  313.,  314.,  315.,  316.,  317.,  318.,  319.,  320.,
      321.,  322.,  323.,  324.,  325.,  326.,  327.,  328.,  329.,  330.,
      331.,  332.,  333.,  334.,  335.,  336.,  333.,  334.,  335.,  336.,
      333.,  334.,  335.,  336.,  333.,  334.,  335.,  336.,  333.,  334.,
      335.,  336.,  333.,  334.,  335.,  336.,  357.,  358.,  359.,  360.,
      361.,  362.,  363.,  364.,  365.,  366.,  367.,  368.,  369.,  370.,
      371.,  372.,  373.,  374.,  375.,  376.,  377.,  378.,  379.,  380.,
      381.,  382.,  383.,  384.,  381.,  382.,  383.,  384.,  381.,  382.,
      383.,  384.,  381.,  382.,  383.,  384.,  381.,  382.,  383.,  384.,
      381.,  382.,  383.,  384.,  405.,  406.,  407.,  408.,  409.,  410.,
      411.,  412.,  413.,  414.,  415.,  416.,  417.,  418.,  419.,  420.,
      421.,  422.,  423.,  424.,  425.,  426.,  427.,  428.,  429.,  430.,
      431.,  432.,  429.,  430.,  431.,  432.,  429.,  430.,  431.,  432.,
      429.,  430.,  431.,  432.,  429.,  430.,  431.,  432.,  429.,  430.,
      431.,  432.,  453.,  454.,  455.,  456.,  457.,  458.,  459.,  460.,
      461.,  462.,  463.,  464.,  465.,  466.,  467.,  468.,  469.,  470.,
      471.,  472.,  473.,  474.,  475.,  476.,  477.,  478.,  479.,  480.,
      477.,  478.,  479.,  480.,  477.,  478.,  479.,  480.,  477.,  478.,
      479.,  480.,  477.,  478.,  479.,  480.,  477.,  478.,  479.,  480.,
      501.,  502.,  503.,  504.,  505.,  506.,  507.,  508.,  509.,  510.,
      511.,  512.,  513.,  514.,  515.,  516.,  517.,  518.,  519.,  520.,
      521.,  522.,  523.,  524.,  525.,  526.,  527.,  528.,  525.,  526.,
      527.,  528.,  525.,  526.,  527.,  528.,  525.,  526.,  527.,  528.,
      525.,  526.,  527.,  528.,  525.,  526.,  527.,  528.,  549.,  550.,
      551.,  552.,  553.,  554.,  555.,  556.,  557.,  558.,  559.,  560.,
      561.,  562.,  563.,  564.,  565.,  566.,  567.,  568.,  569.,  570.,
      571.,  572.,  573.,  574.,  575.,  576.,  573.,  574.,  575.,  576.,
      573.,  574.,  575.,  576.,  573.,  574.,  575.,  576.,  573.,  574.,
      575.,  576.,  573.,  574.,  575.,  576.,  597.,  598.,  599.,  600.,
      601.,  602.,  603.,  604.,  605.,  606.,  607.,  608.,  609.,  610.,
      611.,  612.,  613.,  614.,  615.,  616.,  617.,  618.,  619.,  620.,
      621.,  622.,  623.,  624.,  621.,  622.,  623.,  624.,  621.,  622.,
      623.,  624.,  621.,  622.,  623.,  624.,  621.,  622.,  623.,  624.,
      621.,  622.,  623.,  624.,  645.,  646.,  647.,  648.,  649.,  650.,
      651.,  652.,  653.,  654.,  655.,  656.,  657.,  658.,  659.,  660.,
      661.,  662.,  663.,  664.,  665.,  666.,  667.,  668.,  669.,  670.,
      671.,  672.,  669.,  670.,  671.,  672.,  669.,  670.,  671.,  672.,
      669.,  670.,  671.,  672.,  669.,  670.,  671.,  672.,  669.,  670.,
      671.,  672.,  645.,  646.,  647.,  648.,  649.,  650.,  651.,  652.,
      653.,  654.,  655.,  656.,  657.,  658.,  659.,  660.,  661.,  662.,
      663.,  664.,  665.,  666.,  667.,  668.,  669.,  670.,  671.,  672.,
      669.,  670.,  671.,  672.,  669.,  670.,  671.,  672.,  669.,  670.,
      671.,  672.,  669.,  670.,  671.,  672.,  669.,  670.,  671.,  672.,
      645.,  646.,  647.,  648.,  649.,  650.,  651.,  652.,  653.,  654.,
      655.,  656.,  657.,  658.,  659.,  660.,  661.,  662.,  663.,  664.,
      665.,  666.,  667.,  668.,  669.,  670.,  671.,  672.,  669.,  670.,
      671.,  672.,  669.,  670.,  671.,  672.,  669.,  670.,  671.,  672.,
      669.,  670.,  671.,  672.,  669.,  670.,  671.,  672.,  645.,  646.,
      647.,  648.,  649.,  650.,  651.,  652.,  653.,  654.,  655.,  656.,
      657.,  658.,  659.,  660.,  661.,  662.,  663.,  664.,  665.,  666.,
      667.,  668.,  669.,  670.,  671.,  672.,  669.,  670.,  671.,  672.,
      669.,  670.,  671.,  672.,  669.,  670.,  671.,  672.,  669.,  670.,
      671.,  672.,  669.,  670.,  671.,  672.,  645.,  646.,  647.,  648.,
      649.,  650.,  651.,  652.,  653.,  654.,  655.,  656.,  657.,  658.,
      659.,  660.,  661.,  662.,  663.,  664.,  665.,  666.,  667.,  668.,
      669.,  670.,  671.,  672.,  669.,  670.,  671.,  672.,  669.,  670.,
      671.,  672.,  669.,  670.,  671.,  672.,  669.,  670.,  671.,  672.,
      669.,  670.,  671.,  672.,  645.,  646.,  647.,  648.,  649.,  650.,
      651.,  652.,  653.,  654.,  655.,  656.,  657.,  658.,  659.,  660.,
      661.,  662.,  663.,  664.,  665.,  666.,  667.,  668.,  669.,  670.,
      671.,  672.,  669.,  670.,  671.,  672.,  669.,  670.,  671.,  672.,
      669.,  670.,  671.,  672.,  669.,  670.,  671.,  672.,  669.,  670.,
      671.,  672.,  933.,  934.,  935.,  936.,  937.,  938.,  939.,  940.,
      941.,  942.,  943.,  944.,  945.,  946.,  947.,  948.,  949.,  950.,
      951.,  952.,  953.,  954.,  955.,  956.,  957.,  958.,  959.,  960.,
      957.,  958.,  959.,  960.,  957.,  958.,  959.,  960.,  957.,  958.,
      959.,  960.,  957.,  958.,  959.,  960.,  957.,  958.,  959.,  960.,
      981.,  982.,  983.,  984.,  985.,  986.,  987.,  988.,  989.,  990.,
      991.,  992.,  993.,  994.,  995.,  996.,  997.,  998.,  999.,  1000.,
      1001., 1002., 1003., 1004., 1005., 1006., 1007., 1008., 1005., 1006.,
      1007., 1008., 1005., 1006., 1007., 1008., 1005., 1006., 1007., 1008.,
      1005., 1006., 1007., 1008., 1005., 1006., 1007., 1008., 1029., 1030.,
      1031., 1032., 1033., 1034., 1035., 1036., 1037., 1038., 1039., 1040.,
      1041., 1042., 1043., 1044., 1045., 1046., 1047., 1048., 1049., 1050.,
      1051., 1052., 1053., 1054., 1055., 1056., 1053., 1054., 1055., 1056.,
      1053., 1054., 1055., 1056., 1053., 1054., 1055., 1056., 1053., 1054.,
      1055., 1056., 1053., 1054., 1055., 1056., 1077., 1078., 1079., 1080.,
      1081., 1082., 1083., 1084., 1085., 1086., 1087., 1088., 1089., 1090.,
      1091., 1092., 1093., 1094., 1095., 1096., 1097., 1098., 1099., 1100.,
      1101., 1102., 1103., 1104., 1101., 1102., 1103., 1104., 1101., 1102.,
      1103., 1104., 1101., 1102., 1103., 1104., 1101., 1102., 1103., 1104.,
      1101., 1102., 1103., 1104., 1125., 1126., 1127., 1128., 1129., 1130.,
      1131., 1132., 1133., 1134., 1135., 1136., 1137., 1138., 1139., 1140.,
      1141., 1142., 1143., 1144., 1145., 1146., 1147., 1148., 1149., 1150.,
      1151., 1152., 1149., 1150., 1151., 1152., 1149., 1150., 1151., 1152.,
      1149., 1150., 1151., 1152., 1149., 1150., 1151., 1152., 1149., 1150.,
      1151., 1152., 1173., 1174., 1175., 1176., 1177., 1178., 1179., 1180.,
      1181., 1182., 1183., 1184., 1185., 1186., 1187., 1188., 1189., 1190.,
      1191., 1192., 1193., 1194., 1195., 1196., 1197., 1198., 1199., 1200.,
      1197., 1198., 1199., 1200., 1197., 1198., 1199., 1200., 1197., 1198.,
      1199., 1200., 1197., 1198., 1199., 1200., 1197., 1198., 1199., 1200.,
      1221., 1222., 1223., 1224., 1225., 1226., 1227., 1228., 1229., 1230.,
      1231., 1232., 1233., 1234., 1235., 1236., 1237., 1238., 1239., 1240.,
      1241., 1242., 1243., 1244., 1245., 1246., 1247., 1248., 1245., 1246.,
      1247., 1248., 1245., 1246., 1247., 1248., 1245., 1246., 1247., 1248.,
      1245., 1246., 1247., 1248., 1245., 1246., 1247., 1248., 1269., 1270.,
      1271., 1272., 1273., 1274., 1275., 1276., 1277., 1278., 1279., 1280.,
      1281., 1282., 1283., 1284., 1285., 1286., 1287., 1288., 1289., 1290.,
      1291., 1292., 1293., 1294., 1295., 1296., 1293., 1294., 1295., 1296.,
      1293., 1294., 1295., 1296., 1293., 1294., 1295., 1296., 1293., 1294.,
      1295., 1296., 1293., 1294., 1295., 1296., 1317., 1318., 1319., 1320.,
      1321., 1322., 1323., 1324., 1325., 1326., 1327., 1328., 1329., 1330.,
      1331., 1332., 1333., 1334., 1335., 1336., 1337., 1338., 1339., 1340.,
      1341., 1342., 1343., 1344., 1341., 1342., 1343., 1344., 1341., 1342.,
      1343., 1344., 1341., 1342., 1343., 1344., 1341., 1342., 1343., 1344.,
      1341., 1342., 1343., 1344., 1317., 1318., 1319., 1320., 1321., 1322.,
      1323., 1324., 1325., 1326., 1327., 1328., 1329., 1330., 1331., 1332.,
      1333., 1334., 1335., 1336., 1337., 1338., 1339., 1340., 1341., 1342.,
      1343., 1344., 1341., 1342., 1343., 1344., 1341., 1342., 1343., 1344.,
      1341., 1342., 1343., 1344., 1341., 1342., 1343., 1344., 1341., 1342.,
      1343., 1344., 1317., 1318., 1319., 1320., 1321., 1322., 1323., 1324.,
      1325., 1326., 1327., 1328., 1329., 1330., 1331., 1332., 1333., 1334.,
      1335., 1336., 1337., 1338., 1339., 1340., 1341., 1342., 1343., 1344.,
      1341., 1342., 1343., 1344., 1341., 1342., 1343., 1344., 1341., 1342.,
      1343., 1344., 1341., 1342., 1343., 1344., 1341., 1342., 1343., 1344.,
      1317., 1318., 1319., 1320., 1321., 1322., 1323., 1324., 1325., 1326.,
      1327., 1328., 1329., 1330., 1331., 1332., 1333., 1334., 1335., 1336.,
      1337., 1338., 1339., 1340., 1341., 1342., 1343., 1344., 1341., 1342.,
      1343., 1344., 1341., 1342., 1343., 1344., 1341., 1342., 1343., 1344.,
      1341., 1342., 1343., 1344., 1341., 1342., 1343., 1344., 1317., 1318.,
      1319., 1320., 1321., 1322., 1323., 1324., 1325., 1326., 1327., 1328.,
      1329., 1330., 1331., 1332., 1333., 1334., 1335., 1336., 1337., 1338.,
      1339., 1340., 1341., 1342., 1343., 1344., 1341., 1342., 1343., 1344.,
      1341., 1342., 1343., 1344., 1341., 1342., 1343., 1344., 1341., 1342.,
      1343., 1344., 1341., 1342., 1343., 1344., 1317., 1318., 1319., 1320.,
      1321., 1322., 1323., 1324., 1325., 1326., 1327., 1328., 1329., 1330.,
      1331., 1332., 1333., 1334., 1335., 1336., 1337., 1338., 1339., 1340.,
      1341., 1342., 1343., 1344., 1341., 1342., 1343., 1344., 1341., 1342.,
      1343., 1344., 1341., 1342., 1343., 1344., 1341., 1342., 1343., 1344.,
      1341., 1342., 1343., 1344., 1605., 1606., 1607., 1608., 1609., 1610.,
      1611., 1612., 1613., 1614., 1615., 1616., 1617., 1618., 1619., 1620.,
      1621., 1622., 1623., 1624., 1625., 1626., 1627., 1628., 1629., 1630.,
      1631., 1632., 1629., 1630., 1631., 1632., 1629., 1630., 1631., 1632.,
      1629., 1630., 1631., 1632., 1629., 1630., 1631., 1632., 1629., 1630.,
      1631., 1632., 1653., 1654., 1655., 1656., 1657., 1658., 1659., 1660.,
      1661., 1662., 1663., 1664., 1665., 1666., 1667., 1668., 1669., 1670.,
      1671., 1672., 1673., 1674., 1675., 1676., 1677., 1678., 1679., 1680.,
      1677., 1678., 1679., 1680., 1677., 1678., 1679., 1680., 1677., 1678.,
      1679., 1680., 1677., 1678., 1679., 1680., 1677., 1678., 1679., 1680.,
      1701., 1702., 1703., 1704., 1705., 1706., 1707., 1708., 1709., 1710.,
      1711., 1712., 1713., 1714., 1715., 1716., 1717., 1718., 1719., 1720.,
      1721., 1722., 1723., 1724., 1725., 1726., 1727., 1728., 1725., 1726.,
      1727., 1728., 1725., 1726., 1727., 1728., 1725., 1726., 1727., 1728.,
      1725., 1726., 1727., 1728., 1725., 1726., 1727., 1728., 1749., 1750.,
      1751., 1752., 1753., 1754., 1755., 1756., 1757., 1758., 1759., 1760.,
      1761., 1762., 1763., 1764., 1765., 1766., 1767., 1768., 1769., 1770.,
      1771., 1772., 1773., 1774., 1775., 1776., 1773., 1774., 1775., 1776.,
      1773., 1774., 1775., 1776., 1773., 1774., 1775., 1776., 1773., 1774.,
      1775., 1776., 1773., 1774., 1775., 1776., 1797., 1798., 1799., 1800.,
      1801., 1802., 1803., 1804., 1805., 1806., 1807., 1808., 1809., 1810.,
      1811., 1812., 1813., 1814., 1815., 1816., 1817., 1818., 1819., 1820.,
      1821., 1822., 1823., 1824., 1821., 1822., 1823., 1824., 1821., 1822.,
      1823., 1824., 1821., 1822., 1823., 1824., 1821., 1822., 1823., 1824.,
      1821., 1822., 1823., 1824., 1845., 1846., 1847., 1848., 1849., 1850.,
      1851., 1852., 1853., 1854., 1855., 1856., 1857., 1858., 1859., 1860.,
      1861., 1862., 1863., 1864., 1865., 1866., 1867., 1868., 1869., 1870.,
      1871., 1872., 1869., 1870., 1871., 1872., 1869., 1870., 1871., 1872.,
      1869., 1870., 1871., 1872., 1869., 1870., 1871., 1872., 1869., 1870.,
      1871., 1872., 1893., 1894., 1895., 1896., 1897., 1898., 1899., 1900.,
      1901., 1902., 1903., 1904., 1905., 1906., 1907., 1908., 1909., 1910.,
      1911., 1912., 1913., 1914., 1915., 1916., 1917., 1918., 1919., 1920.,
      1917., 1918., 1919., 1920., 1917., 1918., 1919., 1920., 1917., 1918.,
      1919., 1920., 1917., 1918., 1919., 1920., 1917., 1918., 1919., 1920.,
      1941., 1942., 1943., 1944., 1945., 1946., 1947., 1948., 1949., 1950.,
      1951., 1952., 1953., 1954., 1955., 1956., 1957., 1958., 1959., 1960.,
      1961., 1962., 1963., 1964., 1965., 1966., 1967., 1968., 1965., 1966.,
      1967., 1968., 1965., 1966., 1967., 1968., 1965., 1966., 1967., 1968.,
      1965., 1966., 1967., 1968., 1965., 1966., 1967., 1968., 1989., 1990.,
      1991., 1992., 1993., 1994., 1995., 1996., 1997., 1998., 1999., 2000.,
      2001., 2002., 2003., 2004., 2005., 2006., 2007., 2008., 2009., 2010.,
      2011., 2012., 2013., 2014., 2015., 2016., 2013., 2014., 2015., 2016.,
      2013., 2014., 2015., 2016., 2013., 2014., 2015., 2016., 2013., 2014.,
      2015., 2016., 2013., 2014., 2015., 2016., 1989., 1990., 1991., 1992.,
      1993., 1994., 1995., 1996., 1997., 1998., 1999., 2000., 2001., 2002.,
      2003., 2004., 2005., 2006., 2007., 2008., 2009., 2010., 2011., 2012.,
      2013., 2014., 2015., 2016., 2013., 2014., 2015., 2016., 2013., 2014.,
      2015., 2016., 2013., 2014., 2015., 2016., 2013., 2014., 2015., 2016.,
      2013., 2014., 2015., 2016., 1989., 1990., 1991., 1992., 1993., 1994.,
      1995., 1996., 1997., 1998., 1999., 2000., 2001., 2002., 2003., 2004.,
      2005., 2006., 2007., 2008., 2009., 2010., 2011., 2012., 2013., 2014.,
      2015., 2016., 2013., 2014., 2015., 2016., 2013., 2014., 2015., 2016.,
      2013., 2014., 2015., 2016., 2013., 2014., 2015., 2016., 2013., 2014.,
      2015., 2016., 1989., 1990., 1991., 1992., 1993., 1994., 1995., 1996.,
      1997., 1998., 1999., 2000., 2001., 2002., 2003., 2004., 2005., 2006.,
      2007., 2008., 2009., 2010., 2011., 2012., 2013., 2014., 2015., 2016.,
      2013., 2014., 2015., 2016., 2013., 2014., 2015., 2016., 2013., 2014.,
      2015., 2016., 2013., 2014., 2015., 2016., 2013., 2014., 2015., 2016.,
      1989., 1990., 1991., 1992., 1993., 1994., 1995., 1996., 1997., 1998.,
      1999., 2000., 2001., 2002., 2003., 2004., 2005., 2006., 2007., 2008.,
      2009., 2010., 2011., 2012., 2013., 2014., 2015., 2016., 2013., 2014.,
      2015., 2016., 2013., 2014., 2015., 2016., 2013., 2014., 2015., 2016.,
      2013., 2014., 2015., 2016., 2013., 2014., 2015., 2016., 1989., 1990.,
      1991., 1992., 1993., 1994., 1995., 1996., 1997., 1998., 1999., 2000.,
      2001., 2002., 2003., 2004., 2005., 2006., 2007., 2008., 2009., 2010.,
      2011., 2012., 2013., 2014., 2015., 2016., 2013., 2014., 2015., 2016.,
      2013., 2014., 2015., 2016., 2013., 2014., 2015., 2016., 2013., 2014.,
      2015., 2016., 2013., 2014., 2015., 2016.};
  const std::array<int, 4> in_shape = {{3, 14, 12, 4}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, VALID3x14x12x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      521.,  522.,  523.,  524.,  525.,  526.,  527.,  528.,  569.,  570.,
      571.,  572.,  573.,  574.,  575.,  576.,  617.,  618.,  619.,  620.,
      621.,  622.,  623.,  624.,  665.,  666.,  667.,  668.,  669.,  670.,
      671.,  672.,  1193., 1194., 1195., 1196., 1197., 1198., 1199., 1200.,
      1241., 1242., 1243., 1244., 1245., 1246., 1247., 1248., 1289., 1290.,
      1291., 1292., 1293., 1294., 1295., 1296., 1337., 1338., 1339., 1340.,
      1341., 1342., 1343., 1344., 1865., 1866., 1867., 1868., 1869., 1870.,
      1871., 1872., 1913., 1914., 1915., 1916., 1917., 1918., 1919., 1920.,
      1961., 1962., 1963., 1964., 1965., 1966., 1967., 1968., 2009., 2010.,
      2011., 2012., 2013., 2014., 2015., 2016.};
  const std::array<int, 4> in_shape = {{3, 14, 12, 4}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, SAME3x14x13x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      71.,  72.,  73.,  74.,  75.,  76.,  77.,  78.,  78.,  78.,  78.,  78.,
      78.,  84.,  85.,  86.,  87.,  88.,  89.,  90.,  91.,  91.,  91.,  91.,
      91.,  91.,  97.,  98.,  99.,  100., 101., 102., 103., 104., 104., 104.,
      104., 104., 104., 110., 111., 112., 113., 114., 115., 116., 117., 117.,
      117., 117., 117., 117., 123., 124., 125., 126., 127., 128., 129., 130.,
      130., 130., 130., 130., 130., 136., 137., 138., 139., 140., 141., 142.,
      143., 143., 143., 143., 143., 143., 149., 150., 151., 152., 153., 154.,
      155., 156., 156., 156., 156., 156., 156., 162., 163., 164., 165., 166.,
      167., 168., 169., 169., 169., 169., 169., 169., 175., 176., 177., 178.,
      179., 180., 181., 182., 182., 182., 182., 182., 182., 175., 176., 177.,
      178., 179., 180., 181., 182., 182., 182., 182., 182., 182., 175., 176.,
      177., 178., 179., 180., 181., 182., 182., 182., 182., 182., 182., 175.,
      176., 177., 178., 179., 180., 181., 182., 182., 182., 182., 182., 182.,
      175., 176., 177., 178., 179., 180., 181., 182., 182., 182., 182., 182.,
      182., 175., 176., 177., 178., 179., 180., 181., 182., 182., 182., 182.,
      182., 182., 253., 254., 255., 256., 257., 258., 259., 260., 260., 260.,
      260., 260., 260., 266., 267., 268., 269., 270., 271., 272., 273., 273.,
      273., 273., 273., 273., 279., 280., 281., 282., 283., 284., 285., 286.,
      286., 286., 286., 286., 286., 292., 293., 294., 295., 296., 297., 298.,
      299., 299., 299., 299., 299., 299., 305., 306., 307., 308., 309., 310.,
      311., 312., 312., 312., 312., 312., 312., 318., 319., 320., 321., 322.,
      323., 324., 325., 325., 325., 325., 325., 325., 331., 332., 333., 334.,
      335., 336., 337., 338., 338., 338., 338., 338., 338., 344., 345., 346.,
      347., 348., 349., 350., 351., 351., 351., 351., 351., 351., 357., 358.,
      359., 360., 361., 362., 363., 364., 364., 364., 364., 364., 364., 357.,
      358., 359., 360., 361., 362., 363., 364., 364., 364., 364., 364., 364.,
      357., 358., 359., 360., 361., 362., 363., 364., 364., 364., 364., 364.,
      364., 357., 358., 359., 360., 361., 362., 363., 364., 364., 364., 364.,
      364., 364., 357., 358., 359., 360., 361., 362., 363., 364., 364., 364.,
      364., 364., 364., 357., 358., 359., 360., 361., 362., 363., 364., 364.,
      364., 364., 364., 364., 435., 436., 437., 438., 439., 440., 441., 442.,
      442., 442., 442., 442., 442., 448., 449., 450., 451., 452., 453., 454.,
      455., 455., 455., 455., 455., 455., 461., 462., 463., 464., 465., 466.,
      467., 468., 468., 468., 468., 468., 468., 474., 475., 476., 477., 478.,
      479., 480., 481., 481., 481., 481., 481., 481., 487., 488., 489., 490.,
      491., 492., 493., 494., 494., 494., 494., 494., 494., 500., 501., 502.,
      503., 504., 505., 506., 507., 507., 507., 507., 507., 507., 513., 514.,
      515., 516., 517., 518., 519., 520., 520., 520., 520., 520., 520., 526.,
      527., 528., 529., 530., 531., 532., 533., 533., 533., 533., 533., 533.,
      539., 540., 541., 542., 543., 544., 545., 546., 546., 546., 546., 546.,
      546., 539., 540., 541., 542., 543., 544., 545., 546., 546., 546., 546.,
      546., 546., 539., 540., 541., 542., 543., 544., 545., 546., 546., 546.,
      546., 546., 546., 539., 540., 541., 542., 543., 544., 545., 546., 546.,
      546., 546., 546., 546., 539., 540., 541., 542., 543., 544., 545., 546.,
      546., 546., 546., 546., 546., 539., 540., 541., 542., 543., 544., 545.,
      546., 546., 546., 546., 546., 546.};
  const std::array<int, 4> in_shape = {{3, 14, 13, 1}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, VALID3x14x13x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      141., 142., 143., 154., 155., 156., 167., 168., 169., 180., 181., 182.,
      323., 324., 325., 336., 337., 338., 349., 350., 351., 362., 363., 364.,
      505., 506., 507., 518., 519., 520., 531., 532., 533., 544., 545., 546.};
  const std::array<int, 4> in_shape = {{3, 14, 13, 1}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, SAME3x14x13x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      141.,  142.,  143.,  144.,  145.,  146.,  147.,  148.,  149.,  150.,
      151.,  152.,  153.,  154.,  155.,  156.,  155.,  156.,  155.,  156.,
      155.,  156.,  155.,  156.,  155.,  156.,  167.,  168.,  169.,  170.,
      171.,  172.,  173.,  174.,  175.,  176.,  177.,  178.,  179.,  180.,
      181.,  182.,  181.,  182.,  181.,  182.,  181.,  182.,  181.,  182.,
      181.,  182.,  193.,  194.,  195.,  196.,  197.,  198.,  199.,  200.,
      201.,  202.,  203.,  204.,  205.,  206.,  207.,  208.,  207.,  208.,
      207.,  208.,  207.,  208.,  207.,  208.,  207.,  208.,  219.,  220.,
      221.,  222.,  223.,  224.,  225.,  226.,  227.,  228.,  229.,  230.,
      231.,  232.,  233.,  234.,  233.,  234.,  233.,  234.,  233.,  234.,
      233.,  234.,  233.,  234.,  245.,  246.,  247.,  248.,  249.,  250.,
      251.,  252.,  253.,  254.,  255.,  256.,  257.,  258.,  259.,  260.,
      259.,  260.,  259.,  260.,  259.,  260.,  259.,  260.,  259.,  260.,
      271.,  272.,  273.,  274.,  275.,  276.,  277.,  278.,  279.,  280.,
      281.,  282.,  283.,  284.,  285.,  286.,  285.,  286.,  285.,  286.,
      285.,  286.,  285.,  286.,  285.,  286.,  297.,  298.,  299.,  300.,
      301.,  302.,  303.,  304.,  305.,  306.,  307.,  308.,  309.,  310.,
      311.,  312.,  311.,  312.,  311.,  312.,  311.,  312.,  311.,  312.,
      311.,  312.,  323.,  324.,  325.,  326.,  327.,  328.,  329.,  330.,
      331.,  332.,  333.,  334.,  335.,  336.,  337.,  338.,  337.,  338.,
      337.,  338.,  337.,  338.,  337.,  338.,  337.,  338.,  349.,  350.,
      351.,  352.,  353.,  354.,  355.,  356.,  357.,  358.,  359.,  360.,
      361.,  362.,  363.,  364.,  363.,  364.,  363.,  364.,  363.,  364.,
      363.,  364.,  363.,  364.,  349.,  350.,  351.,  352.,  353.,  354.,
      355.,  356.,  357.,  358.,  359.,  360.,  361.,  362.,  363.,  364.,
      363.,  364.,  363.,  364.,  363.,  364.,  363.,  364.,  363.,  364.,
      349.,  350.,  351.,  352.,  353.,  354.,  355.,  356.,  357.,  358.,
      359.,  360.,  361.,  362.,  363.,  364.,  363.,  364.,  363.,  364.,
      363.,  364.,  363.,  364.,  363.,  364.,  349.,  350.,  351.,  352.,
      353.,  354.,  355.,  356.,  357.,  358.,  359.,  360.,  361.,  362.,
      363.,  364.,  363.,  364.,  363.,  364.,  363.,  364.,  363.,  364.,
      363.,  364.,  349.,  350.,  351.,  352.,  353.,  354.,  355.,  356.,
      357.,  358.,  359.,  360.,  361.,  362.,  363.,  364.,  363.,  364.,
      363.,  364.,  363.,  364.,  363.,  364.,  363.,  364.,  349.,  350.,
      351.,  352.,  353.,  354.,  355.,  356.,  357.,  358.,  359.,  360.,
      361.,  362.,  363.,  364.,  363.,  364.,  363.,  364.,  363.,  364.,
      363.,  364.,  363.,  364.,  505.,  506.,  507.,  508.,  509.,  510.,
      511.,  512.,  513.,  514.,  515.,  516.,  517.,  518.,  519.,  520.,
      519.,  520.,  519.,  520.,  519.,  520.,  519.,  520.,  519.,  520.,
      531.,  532.,  533.,  534.,  535.,  536.,  537.,  538.,  539.,  540.,
      541.,  542.,  543.,  544.,  545.,  546.,  545.,  546.,  545.,  546.,
      545.,  546.,  545.,  546.,  545.,  546.,  557.,  558.,  559.,  560.,
      561.,  562.,  563.,  564.,  565.,  566.,  567.,  568.,  569.,  570.,
      571.,  572.,  571.,  572.,  571.,  572.,  571.,  572.,  571.,  572.,
      571.,  572.,  583.,  584.,  585.,  586.,  587.,  588.,  589.,  590.,
      591.,  592.,  593.,  594.,  595.,  596.,  597.,  598.,  597.,  598.,
      597.,  598.,  597.,  598.,  597.,  598.,  597.,  598.,  609.,  610.,
      611.,  612.,  613.,  614.,  615.,  616.,  617.,  618.,  619.,  620.,
      621.,  622.,  623.,  624.,  623.,  624.,  623.,  624.,  623.,  624.,
      623.,  624.,  623.,  624.,  635.,  636.,  637.,  638.,  639.,  640.,
      641.,  642.,  643.,  644.,  645.,  646.,  647.,  648.,  649.,  650.,
      649.,  650.,  649.,  650.,  649.,  650.,  649.,  650.,  649.,  650.,
      661.,  662.,  663.,  664.,  665.,  666.,  667.,  668.,  669.,  670.,
      671.,  672.,  673.,  674.,  675.,  676.,  675.,  676.,  675.,  676.,
      675.,  676.,  675.,  676.,  675.,  676.,  687.,  688.,  689.,  690.,
      691.,  692.,  693.,  694.,  695.,  696.,  697.,  698.,  699.,  700.,
      701.,  702.,  701.,  702.,  701.,  702.,  701.,  702.,  701.,  702.,
      701.,  702.,  713.,  714.,  715.,  716.,  717.,  718.,  719.,  720.,
      721.,  722.,  723.,  724.,  725.,  726.,  727.,  728.,  727.,  728.,
      727.,  728.,  727.,  728.,  727.,  728.,  727.,  728.,  713.,  714.,
      715.,  716.,  717.,  718.,  719.,  720.,  721.,  722.,  723.,  724.,
      725.,  726.,  727.,  728.,  727.,  728.,  727.,  728.,  727.,  728.,
      727.,  728.,  727.,  728.,  713.,  714.,  715.,  716.,  717.,  718.,
      719.,  720.,  721.,  722.,  723.,  724.,  725.,  726.,  727.,  728.,
      727.,  728.,  727.,  728.,  727.,  728.,  727.,  728.,  727.,  728.,
      713.,  714.,  715.,  716.,  717.,  718.,  719.,  720.,  721.,  722.,
      723.,  724.,  725.,  726.,  727.,  728.,  727.,  728.,  727.,  728.,
      727.,  728.,  727.,  728.,  727.,  728.,  713.,  714.,  715.,  716.,
      717.,  718.,  719.,  720.,  721.,  722.,  723.,  724.,  725.,  726.,
      727.,  728.,  727.,  728.,  727.,  728.,  727.,  728.,  727.,  728.,
      727.,  728.,  713.,  714.,  715.,  716.,  717.,  718.,  719.,  720.,
      721.,  722.,  723.,  724.,  725.,  726.,  727.,  728.,  727.,  728.,
      727.,  728.,  727.,  728.,  727.,  728.,  727.,  728.,  869.,  870.,
      871.,  872.,  873.,  874.,  875.,  876.,  877.,  878.,  879.,  880.,
      881.,  882.,  883.,  884.,  883.,  884.,  883.,  884.,  883.,  884.,
      883.,  884.,  883.,  884.,  895.,  896.,  897.,  898.,  899.,  900.,
      901.,  902.,  903.,  904.,  905.,  906.,  907.,  908.,  909.,  910.,
      909.,  910.,  909.,  910.,  909.,  910.,  909.,  910.,  909.,  910.,
      921.,  922.,  923.,  924.,  925.,  926.,  927.,  928.,  929.,  930.,
      931.,  932.,  933.,  934.,  935.,  936.,  935.,  936.,  935.,  936.,
      935.,  936.,  935.,  936.,  935.,  936.,  947.,  948.,  949.,  950.,
      951.,  952.,  953.,  954.,  955.,  956.,  957.,  958.,  959.,  960.,
      961.,  962.,  961.,  962.,  961.,  962.,  961.,  962.,  961.,  962.,
      961.,  962.,  973.,  974.,  975.,  976.,  977.,  978.,  979.,  980.,
      981.,  982.,  983.,  984.,  985.,  986.,  987.,  988.,  987.,  988.,
      987.,  988.,  987.,  988.,  987.,  988.,  987.,  988.,  999.,  1000.,
      1001., 1002., 1003., 1004., 1005., 1006., 1007., 1008., 1009., 1010.,
      1011., 1012., 1013., 1014., 1013., 1014., 1013., 1014., 1013., 1014.,
      1013., 1014., 1013., 1014., 1025., 1026., 1027., 1028., 1029., 1030.,
      1031., 1032., 1033., 1034., 1035., 1036., 1037., 1038., 1039., 1040.,
      1039., 1040., 1039., 1040., 1039., 1040., 1039., 1040., 1039., 1040.,
      1051., 1052., 1053., 1054., 1055., 1056., 1057., 1058., 1059., 1060.,
      1061., 1062., 1063., 1064., 1065., 1066., 1065., 1066., 1065., 1066.,
      1065., 1066., 1065., 1066., 1065., 1066., 1077., 1078., 1079., 1080.,
      1081., 1082., 1083., 1084., 1085., 1086., 1087., 1088., 1089., 1090.,
      1091., 1092., 1091., 1092., 1091., 1092., 1091., 1092., 1091., 1092.,
      1091., 1092., 1077., 1078., 1079., 1080., 1081., 1082., 1083., 1084.,
      1085., 1086., 1087., 1088., 1089., 1090., 1091., 1092., 1091., 1092.,
      1091., 1092., 1091., 1092., 1091., 1092., 1091., 1092., 1077., 1078.,
      1079., 1080., 1081., 1082., 1083., 1084., 1085., 1086., 1087., 1088.,
      1089., 1090., 1091., 1092., 1091., 1092., 1091., 1092., 1091., 1092.,
      1091., 1092., 1091., 1092., 1077., 1078., 1079., 1080., 1081., 1082.,
      1083., 1084., 1085., 1086., 1087., 1088., 1089., 1090., 1091., 1092.,
      1091., 1092., 1091., 1092., 1091., 1092., 1091., 1092., 1091., 1092.,
      1077., 1078., 1079., 1080., 1081., 1082., 1083., 1084., 1085., 1086.,
      1087., 1088., 1089., 1090., 1091., 1092., 1091., 1092., 1091., 1092.,
      1091., 1092., 1091., 1092., 1091., 1092., 1077., 1078., 1079., 1080.,
      1081., 1082., 1083., 1084., 1085., 1086., 1087., 1088., 1089., 1090.,
      1091., 1092., 1091., 1092., 1091., 1092., 1091., 1092., 1091., 1092.,
      1091., 1092.};
  const std::array<int, 4> in_shape = {{3, 14, 13, 2}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, VALID3x14x13x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      281.,  282.,  283.,  284.,  285.,  286.,  307.,  308.,  309.,
      310.,  311.,  312.,  333.,  334.,  335.,  336.,  337.,  338.,
      359.,  360.,  361.,  362.,  363.,  364.,  645.,  646.,  647.,
      648.,  649.,  650.,  671.,  672.,  673.,  674.,  675.,  676.,
      697.,  698.,  699.,  700.,  701.,  702.,  723.,  724.,  725.,
      726.,  727.,  728.,  1009., 1010., 1011., 1012., 1013., 1014.,
      1035., 1036., 1037., 1038., 1039., 1040., 1061., 1062., 1063.,
      1064., 1065., 1066., 1087., 1088., 1089., 1090., 1091., 1092.};
  const std::array<int, 4> in_shape = {{3, 14, 13, 2}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, SAME3x14x13x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      281.,  282.,  283.,  284.,  285.,  286.,  287.,  288.,  289.,  290.,
      291.,  292.,  293.,  294.,  295.,  296.,  297.,  298.,  299.,  300.,
      301.,  302.,  303.,  304.,  305.,  306.,  307.,  308.,  309.,  310.,
      311.,  312.,  309.,  310.,  311.,  312.,  309.,  310.,  311.,  312.,
      309.,  310.,  311.,  312.,  309.,  310.,  311.,  312.,  309.,  310.,
      311.,  312.,  333.,  334.,  335.,  336.,  337.,  338.,  339.,  340.,
      341.,  342.,  343.,  344.,  345.,  346.,  347.,  348.,  349.,  350.,
      351.,  352.,  353.,  354.,  355.,  356.,  357.,  358.,  359.,  360.,
      361.,  362.,  363.,  364.,  361.,  362.,  363.,  364.,  361.,  362.,
      363.,  364.,  361.,  362.,  363.,  364.,  361.,  362.,  363.,  364.,
      361.,  362.,  363.,  364.,  385.,  386.,  387.,  388.,  389.,  390.,
      391.,  392.,  393.,  394.,  395.,  396.,  397.,  398.,  399.,  400.,
      401.,  402.,  403.,  404.,  405.,  406.,  407.,  408.,  409.,  410.,
      411.,  412.,  413.,  414.,  415.,  416.,  413.,  414.,  415.,  416.,
      413.,  414.,  415.,  416.,  413.,  414.,  415.,  416.,  413.,  414.,
      415.,  416.,  413.,  414.,  415.,  416.,  437.,  438.,  439.,  440.,
      441.,  442.,  443.,  444.,  445.,  446.,  447.,  448.,  449.,  450.,
      451.,  452.,  453.,  454.,  455.,  456.,  457.,  458.,  459.,  460.,
      461.,  462.,  463.,  464.,  465.,  466.,  467.,  468.,  465.,  466.,
      467.,  468.,  465.,  466.,  467.,  468.,  465.,  466.,  467.,  468.,
      465.,  466.,  467.,  468.,  465.,  466.,  467.,  468.,  489.,  490.,
      491.,  492.,  493.,  494.,  495.,  496.,  497.,  498.,  499.,  500.,
      501.,  502.,  503.,  504.,  505.,  506.,  507.,  508.,  509.,  510.,
      511.,  512.,  513.,  514.,  515.,  516.,  517.,  518.,  519.,  520.,
      517.,  518.,  519.,  520.,  517.,  518.,  519.,  520.,  517.,  518.,
      519.,  520.,  517.,  518.,  519.,  520.,  517.,  518.,  519.,  520.,
      541.,  542.,  543.,  544.,  545.,  546.,  547.,  548.,  549.,  550.,
      551.,  552.,  553.,  554.,  555.,  556.,  557.,  558.,  559.,  560.,
      561.,  562.,  563.,  564.,  565.,  566.,  567.,  568.,  569.,  570.,
      571.,  572.,  569.,  570.,  571.,  572.,  569.,  570.,  571.,  572.,
      569.,  570.,  571.,  572.,  569.,  570.,  571.,  572.,  569.,  570.,
      571.,  572.,  593.,  594.,  595.,  596.,  597.,  598.,  599.,  600.,
      601.,  602.,  603.,  604.,  605.,  606.,  607.,  608.,  609.,  610.,
      611.,  612.,  613.,  614.,  615.,  616.,  617.,  618.,  619.,  620.,
      621.,  622.,  623.,  624.,  621.,  622.,  623.,  624.,  621.,  622.,
      623.,  624.,  621.,  622.,  623.,  624.,  621.,  622.,  623.,  624.,
      621.,  622.,  623.,  624.,  645.,  646.,  647.,  648.,  649.,  650.,
      651.,  652.,  653.,  654.,  655.,  656.,  657.,  658.,  659.,  660.,
      661.,  662.,  663.,  664.,  665.,  666.,  667.,  668.,  669.,  670.,
      671.,  672.,  673.,  674.,  675.,  676.,  673.,  674.,  675.,  676.,
      673.,  674.,  675.,  676.,  673.,  674.,  675.,  676.,  673.,  674.,
      675.,  676.,  673.,  674.,  675.,  676.,  697.,  698.,  699.,  700.,
      701.,  702.,  703.,  704.,  705.,  706.,  707.,  708.,  709.,  710.,
      711.,  712.,  713.,  714.,  715.,  716.,  717.,  718.,  719.,  720.,
      721.,  722.,  723.,  724.,  725.,  726.,  727.,  728.,  725.,  726.,
      727.,  728.,  725.,  726.,  727.,  728.,  725.,  726.,  727.,  728.,
      725.,  726.,  727.,  728.,  725.,  726.,  727.,  728.,  697.,  698.,
      699.,  700.,  701.,  702.,  703.,  704.,  705.,  706.,  707.,  708.,
      709.,  710.,  711.,  712.,  713.,  714.,  715.,  716.,  717.,  718.,
      719.,  720.,  721.,  722.,  723.,  724.,  725.,  726.,  727.,  728.,
      725.,  726.,  727.,  728.,  725.,  726.,  727.,  728.,  725.,  726.,
      727.,  728.,  725.,  726.,  727.,  728.,  725.,  726.,  727.,  728.,
      697.,  698.,  699.,  700.,  701.,  702.,  703.,  704.,  705.,  706.,
      707.,  708.,  709.,  710.,  711.,  712.,  713.,  714.,  715.,  716.,
      717.,  718.,  719.,  720.,  721.,  722.,  723.,  724.,  725.,  726.,
      727.,  728.,  725.,  726.,  727.,  728.,  725.,  726.,  727.,  728.,
      725.,  726.,  727.,  728.,  725.,  726.,  727.,  728.,  725.,  726.,
      727.,  728.,  697.,  698.,  699.,  700.,  701.,  702.,  703.,  704.,
      705.,  706.,  707.,  708.,  709.,  710.,  711.,  712.,  713.,  714.,
      715.,  716.,  717.,  718.,  719.,  720.,  721.,  722.,  723.,  724.,
      725.,  726.,  727.,  728.,  725.,  726.,  727.,  728.,  725.,  726.,
      727.,  728.,  725.,  726.,  727.,  728.,  725.,  726.,  727.,  728.,
      725.,  726.,  727.,  728.,  697.,  698.,  699.,  700.,  701.,  702.,
      703.,  704.,  705.,  706.,  707.,  708.,  709.,  710.,  711.,  712.,
      713.,  714.,  715.,  716.,  717.,  718.,  719.,  720.,  721.,  722.,
      723.,  724.,  725.,  726.,  727.,  728.,  725.,  726.,  727.,  728.,
      725.,  726.,  727.,  728.,  725.,  726.,  727.,  728.,  725.,  726.,
      727.,  728.,  725.,  726.,  727.,  728.,  697.,  698.,  699.,  700.,
      701.,  702.,  703.,  704.,  705.,  706.,  707.,  708.,  709.,  710.,
      711.,  712.,  713.,  714.,  715.,  716.,  717.,  718.,  719.,  720.,
      721.,  722.,  723.,  724.,  725.,  726.,  727.,  728.,  725.,  726.,
      727.,  728.,  725.,  726.,  727.,  728.,  725.,  726.,  727.,  728.,
      725.,  726.,  727.,  728.,  725.,  726.,  727.,  728.,  1009., 1010.,
      1011., 1012., 1013., 1014., 1015., 1016., 1017., 1018., 1019., 1020.,
      1021., 1022., 1023., 1024., 1025., 1026., 1027., 1028., 1029., 1030.,
      1031., 1032., 1033., 1034., 1035., 1036., 1037., 1038., 1039., 1040.,
      1037., 1038., 1039., 1040., 1037., 1038., 1039., 1040., 1037., 1038.,
      1039., 1040., 1037., 1038., 1039., 1040., 1037., 1038., 1039., 1040.,
      1061., 1062., 1063., 1064., 1065., 1066., 1067., 1068., 1069., 1070.,
      1071., 1072., 1073., 1074., 1075., 1076., 1077., 1078., 1079., 1080.,
      1081., 1082., 1083., 1084., 1085., 1086., 1087., 1088., 1089., 1090.,
      1091., 1092., 1089., 1090., 1091., 1092., 1089., 1090., 1091., 1092.,
      1089., 1090., 1091., 1092., 1089., 1090., 1091., 1092., 1089., 1090.,
      1091., 1092., 1113., 1114., 1115., 1116., 1117., 1118., 1119., 1120.,
      1121., 1122., 1123., 1124., 1125., 1126., 1127., 1128., 1129., 1130.,
      1131., 1132., 1133., 1134., 1135., 1136., 1137., 1138., 1139., 1140.,
      1141., 1142., 1143., 1144., 1141., 1142., 1143., 1144., 1141., 1142.,
      1143., 1144., 1141., 1142., 1143., 1144., 1141., 1142., 1143., 1144.,
      1141., 1142., 1143., 1144., 1165., 1166., 1167., 1168., 1169., 1170.,
      1171., 1172., 1173., 1174., 1175., 1176., 1177., 1178., 1179., 1180.,
      1181., 1182., 1183., 1184., 1185., 1186., 1187., 1188., 1189., 1190.,
      1191., 1192., 1193., 1194., 1195., 1196., 1193., 1194., 1195., 1196.,
      1193., 1194., 1195., 1196., 1193., 1194., 1195., 1196., 1193., 1194.,
      1195., 1196., 1193., 1194., 1195., 1196., 1217., 1218., 1219., 1220.,
      1221., 1222., 1223., 1224., 1225., 1226., 1227., 1228., 1229., 1230.,
      1231., 1232., 1233., 1234., 1235., 1236., 1237., 1238., 1239., 1240.,
      1241., 1242., 1243., 1244., 1245., 1246., 1247., 1248., 1245., 1246.,
      1247., 1248., 1245., 1246., 1247., 1248., 1245., 1246., 1247., 1248.,
      1245., 1246., 1247., 1248., 1245., 1246., 1247., 1248., 1269., 1270.,
      1271., 1272., 1273., 1274., 1275., 1276., 1277., 1278., 1279., 1280.,
      1281., 1282., 1283., 1284., 1285., 1286., 1287., 1288., 1289., 1290.,
      1291., 1292., 1293., 1294., 1295., 1296., 1297., 1298., 1299., 1300.,
      1297., 1298., 1299., 1300., 1297., 1298., 1299., 1300., 1297., 1298.,
      1299., 1300., 1297., 1298., 1299., 1300., 1297., 1298., 1299., 1300.,
      1321., 1322., 1323., 1324., 1325., 1326., 1327., 1328., 1329., 1330.,
      1331., 1332., 1333., 1334., 1335., 1336., 1337., 1338., 1339., 1340.,
      1341., 1342., 1343., 1344., 1345., 1346., 1347., 1348., 1349., 1350.,
      1351., 1352., 1349., 1350., 1351., 1352., 1349., 1350., 1351., 1352.,
      1349., 1350., 1351., 1352., 1349., 1350., 1351., 1352., 1349., 1350.,
      1351., 1352., 1373., 1374., 1375., 1376., 1377., 1378., 1379., 1380.,
      1381., 1382., 1383., 1384., 1385., 1386., 1387., 1388., 1389., 1390.,
      1391., 1392., 1393., 1394., 1395., 1396., 1397., 1398., 1399., 1400.,
      1401., 1402., 1403., 1404., 1401., 1402., 1403., 1404., 1401., 1402.,
      1403., 1404., 1401., 1402., 1403., 1404., 1401., 1402., 1403., 1404.,
      1401., 1402., 1403., 1404., 1425., 1426., 1427., 1428., 1429., 1430.,
      1431., 1432., 1433., 1434., 1435., 1436., 1437., 1438., 1439., 1440.,
      1441., 1442., 1443., 1444., 1445., 1446., 1447., 1448., 1449., 1450.,
      1451., 1452., 1453., 1454., 1455., 1456., 1453., 1454., 1455., 1456.,
      1453., 1454., 1455., 1456., 1453., 1454., 1455., 1456., 1453., 1454.,
      1455., 1456., 1453., 1454., 1455., 1456., 1425., 1426., 1427., 1428.,
      1429., 1430., 1431., 1432., 1433., 1434., 1435., 1436., 1437., 1438.,
      1439., 1440., 1441., 1442., 1443., 1444., 1445., 1446., 1447., 1448.,
      1449., 1450., 1451., 1452., 1453., 1454., 1455., 1456., 1453., 1454.,
      1455., 1456., 1453., 1454., 1455., 1456., 1453., 1454., 1455., 1456.,
      1453., 1454., 1455., 1456., 1453., 1454., 1455., 1456., 1425., 1426.,
      1427., 1428., 1429., 1430., 1431., 1432., 1433., 1434., 1435., 1436.,
      1437., 1438., 1439., 1440., 1441., 1442., 1443., 1444., 1445., 1446.,
      1447., 1448., 1449., 1450., 1451., 1452., 1453., 1454., 1455., 1456.,
      1453., 1454., 1455., 1456., 1453., 1454., 1455., 1456., 1453., 1454.,
      1455., 1456., 1453., 1454., 1455., 1456., 1453., 1454., 1455., 1456.,
      1425., 1426., 1427., 1428., 1429., 1430., 1431., 1432., 1433., 1434.,
      1435., 1436., 1437., 1438., 1439., 1440., 1441., 1442., 1443., 1444.,
      1445., 1446., 1447., 1448., 1449., 1450., 1451., 1452., 1453., 1454.,
      1455., 1456., 1453., 1454., 1455., 1456., 1453., 1454., 1455., 1456.,
      1453., 1454., 1455., 1456., 1453., 1454., 1455., 1456., 1453., 1454.,
      1455., 1456., 1425., 1426., 1427., 1428., 1429., 1430., 1431., 1432.,
      1433., 1434., 1435., 1436., 1437., 1438., 1439., 1440., 1441., 1442.,
      1443., 1444., 1445., 1446., 1447., 1448., 1449., 1450., 1451., 1452.,
      1453., 1454., 1455., 1456., 1453., 1454., 1455., 1456., 1453., 1454.,
      1455., 1456., 1453., 1454., 1455., 1456., 1453., 1454., 1455., 1456.,
      1453., 1454., 1455., 1456., 1425., 1426., 1427., 1428., 1429., 1430.,
      1431., 1432., 1433., 1434., 1435., 1436., 1437., 1438., 1439., 1440.,
      1441., 1442., 1443., 1444., 1445., 1446., 1447., 1448., 1449., 1450.,
      1451., 1452., 1453., 1454., 1455., 1456., 1453., 1454., 1455., 1456.,
      1453., 1454., 1455., 1456., 1453., 1454., 1455., 1456., 1453., 1454.,
      1455., 1456., 1453., 1454., 1455., 1456., 1737., 1738., 1739., 1740.,
      1741., 1742., 1743., 1744., 1745., 1746., 1747., 1748., 1749., 1750.,
      1751., 1752., 1753., 1754., 1755., 1756., 1757., 1758., 1759., 1760.,
      1761., 1762., 1763., 1764., 1765., 1766., 1767., 1768., 1765., 1766.,
      1767., 1768., 1765., 1766., 1767., 1768., 1765., 1766., 1767., 1768.,
      1765., 1766., 1767., 1768., 1765., 1766., 1767., 1768., 1789., 1790.,
      1791., 1792., 1793., 1794., 1795., 1796., 1797., 1798., 1799., 1800.,
      1801., 1802., 1803., 1804., 1805., 1806., 1807., 1808., 1809., 1810.,
      1811., 1812., 1813., 1814., 1815., 1816., 1817., 1818., 1819., 1820.,
      1817., 1818., 1819., 1820., 1817., 1818., 1819., 1820., 1817., 1818.,
      1819., 1820., 1817., 1818., 1819., 1820., 1817., 1818., 1819., 1820.,
      1841., 1842., 1843., 1844., 1845., 1846., 1847., 1848., 1849., 1850.,
      1851., 1852., 1853., 1854., 1855., 1856., 1857., 1858., 1859., 1860.,
      1861., 1862., 1863., 1864., 1865., 1866., 1867., 1868., 1869., 1870.,
      1871., 1872., 1869., 1870., 1871., 1872., 1869., 1870., 1871., 1872.,
      1869., 1870., 1871., 1872., 1869., 1870., 1871., 1872., 1869., 1870.,
      1871., 1872., 1893., 1894., 1895., 1896., 1897., 1898., 1899., 1900.,
      1901., 1902., 1903., 1904., 1905., 1906., 1907., 1908., 1909., 1910.,
      1911., 1912., 1913., 1914., 1915., 1916., 1917., 1918., 1919., 1920.,
      1921., 1922., 1923., 1924., 1921., 1922., 1923., 1924., 1921., 1922.,
      1923., 1924., 1921., 1922., 1923., 1924., 1921., 1922., 1923., 1924.,
      1921., 1922., 1923., 1924., 1945., 1946., 1947., 1948., 1949., 1950.,
      1951., 1952., 1953., 1954., 1955., 1956., 1957., 1958., 1959., 1960.,
      1961., 1962., 1963., 1964., 1965., 1966., 1967., 1968., 1969., 1970.,
      1971., 1972., 1973., 1974., 1975., 1976., 1973., 1974., 1975., 1976.,
      1973., 1974., 1975., 1976., 1973., 1974., 1975., 1976., 1973., 1974.,
      1975., 1976., 1973., 1974., 1975., 1976., 1997., 1998., 1999., 2000.,
      2001., 2002., 2003., 2004., 2005., 2006., 2007., 2008., 2009., 2010.,
      2011., 2012., 2013., 2014., 2015., 2016., 2017., 2018., 2019., 2020.,
      2021., 2022., 2023., 2024., 2025., 2026., 2027., 2028., 2025., 2026.,
      2027., 2028., 2025., 2026., 2027., 2028., 2025., 2026., 2027., 2028.,
      2025., 2026., 2027., 2028., 2025., 2026., 2027., 2028., 2045., 2046.,
      2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048.,
      2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046.,
      2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048.,
      2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048., 2025., 2026.,
      2027., 2028., 2025., 2026., 2027., 2028., 2025., 2026., 2027., 2028.,
      2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046.,
      2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048.,
      2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046.,
      2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048.,
      2025., 2026., 2027., 2028., 2025., 2026., 2027., 2028., 2025., 2026.,
      2027., 2028., 2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048.,
      2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046.,
      2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048.,
      2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046.,
      2047., 2048., 2025., 2026., 2027., 2028., 2025., 2026., 2027., 2028.,
      2025., 2026., 2027., 2028., 2045., 2046., 2047., 2048., 2045., 2046.,
      2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048.,
      2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046.,
      2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048.,
      2045., 2046., 2047., 2048., 2025., 2026., 2027., 2028., 2025., 2026.,
      2027., 2028., 2025., 2026., 2027., 2028., 2045., 2046., 2047., 2048.,
      2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046.,
      2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048.,
      2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046.,
      2047., 2048., 2045., 2046., 2047., 2048., 2025., 2026., 2027., 2028.,
      2025., 2026., 2027., 2028., 2025., 2026., 2027., 2028., 2045., 2046.,
      2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048.,
      2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046.,
      2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048.,
      2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048., 2025., 2026.,
      2027., 2028., 2025., 2026., 2027., 2028., 2025., 2026., 2027., 2028.,
      2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046.,
      2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048.,
      2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046.,
      2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048.,
      2025., 2026., 2027., 2028., 2025., 2026., 2027., 2028., 2025., 2026.,
      2027., 2028., 2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048.,
      2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046.,
      2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048.,
      2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046.,
      2047., 2048., 2025., 2026., 2027., 2028., 2025., 2026., 2027., 2028.,
      2025., 2026., 2027., 2028.};
  const std::array<int, 4> in_shape = {{3, 14, 13, 4}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, VALID3x14x13x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      561.,  562.,  563.,  564.,  565.,  566.,  567.,  568.,  569.,  570.,
      571.,  572.,  613.,  614.,  615.,  616.,  617.,  618.,  619.,  620.,
      621.,  622.,  623.,  624.,  665.,  666.,  667.,  668.,  669.,  670.,
      671.,  672.,  673.,  674.,  675.,  676.,  717.,  718.,  719.,  720.,
      721.,  722.,  723.,  724.,  725.,  726.,  727.,  728.,  1289., 1290.,
      1291., 1292., 1293., 1294., 1295., 1296., 1297., 1298., 1299., 1300.,
      1341., 1342., 1343., 1344., 1345., 1346., 1347., 1348., 1349., 1350.,
      1351., 1352., 1393., 1394., 1395., 1396., 1397., 1398., 1399., 1400.,
      1401., 1402., 1403., 1404., 1445., 1446., 1447., 1448., 1449., 1450.,
      1451., 1452., 1453., 1454., 1455., 1456., 2017., 2018., 2019., 2020.,
      2021., 2022., 2023., 2024., 2025., 2026., 2027., 2028., 2045., 2046.,
      2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048.,
      2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046.,
      2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048.,
      2045., 2046., 2047., 2048.};
  const std::array<int, 4> in_shape = {{3, 14, 13, 4}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, SAME3x14x14x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      76.,  77.,  78.,  79.,  80.,  81.,  82.,  83.,  84.,  84.,  84.,  84.,
      84.,  84.,  90.,  91.,  92.,  93.,  94.,  95.,  96.,  97.,  98.,  98.,
      98.,  98.,  98.,  98.,  104., 105., 106., 107., 108., 109., 110., 111.,
      112., 112., 112., 112., 112., 112., 118., 119., 120., 121., 122., 123.,
      124., 125., 126., 126., 126., 126., 126., 126., 132., 133., 134., 135.,
      136., 137., 138., 139., 140., 140., 140., 140., 140., 140., 146., 147.,
      148., 149., 150., 151., 152., 153., 154., 154., 154., 154., 154., 154.,
      160., 161., 162., 163., 164., 165., 166., 167., 168., 168., 168., 168.,
      168., 168., 174., 175., 176., 177., 178., 179., 180., 181., 182., 182.,
      182., 182., 182., 182., 188., 189., 190., 191., 192., 193., 194., 195.,
      196., 196., 196., 196., 196., 196., 188., 189., 190., 191., 192., 193.,
      194., 195., 196., 196., 196., 196., 196., 196., 188., 189., 190., 191.,
      192., 193., 194., 195., 196., 196., 196., 196., 196., 196., 188., 189.,
      190., 191., 192., 193., 194., 195., 196., 196., 196., 196., 196., 196.,
      188., 189., 190., 191., 192., 193., 194., 195., 196., 196., 196., 196.,
      196., 196., 188., 189., 190., 191., 192., 193., 194., 195., 196., 196.,
      196., 196., 196., 196., 272., 273., 274., 275., 276., 277., 278., 279.,
      280., 280., 280., 280., 280., 280., 286., 287., 288., 289., 290., 291.,
      292., 293., 294., 294., 294., 294., 294., 294., 300., 301., 302., 303.,
      304., 305., 306., 307., 308., 308., 308., 308., 308., 308., 314., 315.,
      316., 317., 318., 319., 320., 321., 322., 322., 322., 322., 322., 322.,
      328., 329., 330., 331., 332., 333., 334., 335., 336., 336., 336., 336.,
      336., 336., 342., 343., 344., 345., 346., 347., 348., 349., 350., 350.,
      350., 350., 350., 350., 356., 357., 358., 359., 360., 361., 362., 363.,
      364., 364., 364., 364., 364., 364., 370., 371., 372., 373., 374., 375.,
      376., 377., 378., 378., 378., 378., 378., 378., 384., 385., 386., 387.,
      388., 389., 390., 391., 392., 392., 392., 392., 392., 392., 384., 385.,
      386., 387., 388., 389., 390., 391., 392., 392., 392., 392., 392., 392.,
      384., 385., 386., 387., 388., 389., 390., 391., 392., 392., 392., 392.,
      392., 392., 384., 385., 386., 387., 388., 389., 390., 391., 392., 392.,
      392., 392., 392., 392., 384., 385., 386., 387., 388., 389., 390., 391.,
      392., 392., 392., 392., 392., 392., 384., 385., 386., 387., 388., 389.,
      390., 391., 392., 392., 392., 392., 392., 392., 468., 469., 470., 471.,
      472., 473., 474., 475., 476., 476., 476., 476., 476., 476., 482., 483.,
      484., 485., 486., 487., 488., 489., 490., 490., 490., 490., 490., 490.,
      496., 497., 498., 499., 500., 501., 502., 503., 504., 504., 504., 504.,
      504., 504., 510., 511., 512., 513., 514., 515., 516., 517., 518., 518.,
      518., 518., 518., 518., 524., 525., 526., 527., 528., 529., 530., 531.,
      532., 532., 532., 532., 532., 532., 538., 539., 540., 541., 542., 543.,
      544., 545., 546., 546., 546., 546., 546., 546., 552., 553., 554., 555.,
      556., 557., 558., 559., 560., 560., 560., 560., 560., 560., 566., 567.,
      568., 569., 570., 571., 572., 573., 574., 574., 574., 574., 574., 574.,
      580., 581., 582., 583., 584., 585., 586., 587., 588., 588., 588., 588.,
      588., 588., 580., 581., 582., 583., 584., 585., 586., 587., 588., 588.,
      588., 588., 588., 588., 580., 581., 582., 583., 584., 585., 586., 587.,
      588., 588., 588., 588., 588., 588., 580., 581., 582., 583., 584., 585.,
      586., 587., 588., 588., 588., 588., 588., 588., 580., 581., 582., 583.,
      584., 585., 586., 587., 588., 588., 588., 588., 588., 588., 580., 581.,
      582., 583., 584., 585., 586., 587., 588., 588., 588., 588., 588., 588.};
  const std::array<int, 4> in_shape = {{3, 14, 14, 1}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, VALID3x14x14x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      151., 152., 153., 154., 165., 166., 167., 168., 179., 180., 181., 182.,
      193., 194., 195., 196., 347., 348., 349., 350., 361., 362., 363., 364.,
      375., 376., 377., 378., 389., 390., 391., 392., 543., 544., 545., 546.,
      557., 558., 559., 560., 571., 572., 573., 574., 585., 586., 587., 588.};
  const std::array<int, 4> in_shape = {{3, 14, 14, 1}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, SAME3x14x14x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      151.,  152.,  153.,  154.,  155.,  156.,  157.,  158.,  159.,  160.,
      161.,  162.,  163.,  164.,  165.,  166.,  167.,  168.,  167.,  168.,
      167.,  168.,  167.,  168.,  167.,  168.,  167.,  168.,  179.,  180.,
      181.,  182.,  183.,  184.,  185.,  186.,  187.,  188.,  189.,  190.,
      191.,  192.,  193.,  194.,  195.,  196.,  195.,  196.,  195.,  196.,
      195.,  196.,  195.,  196.,  195.,  196.,  207.,  208.,  209.,  210.,
      211.,  212.,  213.,  214.,  215.,  216.,  217.,  218.,  219.,  220.,
      221.,  222.,  223.,  224.,  223.,  224.,  223.,  224.,  223.,  224.,
      223.,  224.,  223.,  224.,  235.,  236.,  237.,  238.,  239.,  240.,
      241.,  242.,  243.,  244.,  245.,  246.,  247.,  248.,  249.,  250.,
      251.,  252.,  251.,  252.,  251.,  252.,  251.,  252.,  251.,  252.,
      251.,  252.,  263.,  264.,  265.,  266.,  267.,  268.,  269.,  270.,
      271.,  272.,  273.,  274.,  275.,  276.,  277.,  278.,  279.,  280.,
      279.,  280.,  279.,  280.,  279.,  280.,  279.,  280.,  279.,  280.,
      291.,  292.,  293.,  294.,  295.,  296.,  297.,  298.,  299.,  300.,
      301.,  302.,  303.,  304.,  305.,  306.,  307.,  308.,  307.,  308.,
      307.,  308.,  307.,  308.,  307.,  308.,  307.,  308.,  319.,  320.,
      321.,  322.,  323.,  324.,  325.,  326.,  327.,  328.,  329.,  330.,
      331.,  332.,  333.,  334.,  335.,  336.,  335.,  336.,  335.,  336.,
      335.,  336.,  335.,  336.,  335.,  336.,  347.,  348.,  349.,  350.,
      351.,  352.,  353.,  354.,  355.,  356.,  357.,  358.,  359.,  360.,
      361.,  362.,  363.,  364.,  363.,  364.,  363.,  364.,  363.,  364.,
      363.,  364.,  363.,  364.,  375.,  376.,  377.,  378.,  379.,  380.,
      381.,  382.,  383.,  384.,  385.,  386.,  387.,  388.,  389.,  390.,
      391.,  392.,  391.,  392.,  391.,  392.,  391.,  392.,  391.,  392.,
      391.,  392.,  375.,  376.,  377.,  378.,  379.,  380.,  381.,  382.,
      383.,  384.,  385.,  386.,  387.,  388.,  389.,  390.,  391.,  392.,
      391.,  392.,  391.,  392.,  391.,  392.,  391.,  392.,  391.,  392.,
      375.,  376.,  377.,  378.,  379.,  380.,  381.,  382.,  383.,  384.,
      385.,  386.,  387.,  388.,  389.,  390.,  391.,  392.,  391.,  392.,
      391.,  392.,  391.,  392.,  391.,  392.,  391.,  392.,  375.,  376.,
      377.,  378.,  379.,  380.,  381.,  382.,  383.,  384.,  385.,  386.,
      387.,  388.,  389.,  390.,  391.,  392.,  391.,  392.,  391.,  392.,
      391.,  392.,  391.,  392.,  391.,  392.,  375.,  376.,  377.,  378.,
      379.,  380.,  381.,  382.,  383.,  384.,  385.,  386.,  387.,  388.,
      389.,  390.,  391.,  392.,  391.,  392.,  391.,  392.,  391.,  392.,
      391.,  392.,  391.,  392.,  375.,  376.,  377.,  378.,  379.,  380.,
      381.,  382.,  383.,  384.,  385.,  386.,  387.,  388.,  389.,  390.,
      391.,  392.,  391.,  392.,  391.,  392.,  391.,  392.,  391.,  392.,
      391.,  392.,  543.,  544.,  545.,  546.,  547.,  548.,  549.,  550.,
      551.,  552.,  553.,  554.,  555.,  556.,  557.,  558.,  559.,  560.,
      559.,  560.,  559.,  560.,  559.,  560.,  559.,  560.,  559.,  560.,
      571.,  572.,  573.,  574.,  575.,  576.,  577.,  578.,  579.,  580.,
      581.,  582.,  583.,  584.,  585.,  586.,  587.,  588.,  587.,  588.,
      587.,  588.,  587.,  588.,  587.,  588.,  587.,  588.,  599.,  600.,
      601.,  602.,  603.,  604.,  605.,  606.,  607.,  608.,  609.,  610.,
      611.,  612.,  613.,  614.,  615.,  616.,  615.,  616.,  615.,  616.,
      615.,  616.,  615.,  616.,  615.,  616.,  627.,  628.,  629.,  630.,
      631.,  632.,  633.,  634.,  635.,  636.,  637.,  638.,  639.,  640.,
      641.,  642.,  643.,  644.,  643.,  644.,  643.,  644.,  643.,  644.,
      643.,  644.,  643.,  644.,  655.,  656.,  657.,  658.,  659.,  660.,
      661.,  662.,  663.,  664.,  665.,  666.,  667.,  668.,  669.,  670.,
      671.,  672.,  671.,  672.,  671.,  672.,  671.,  672.,  671.,  672.,
      671.,  672.,  683.,  684.,  685.,  686.,  687.,  688.,  689.,  690.,
      691.,  692.,  693.,  694.,  695.,  696.,  697.,  698.,  699.,  700.,
      699.,  700.,  699.,  700.,  699.,  700.,  699.,  700.,  699.,  700.,
      711.,  712.,  713.,  714.,  715.,  716.,  717.,  718.,  719.,  720.,
      721.,  722.,  723.,  724.,  725.,  726.,  727.,  728.,  727.,  728.,
      727.,  728.,  727.,  728.,  727.,  728.,  727.,  728.,  739.,  740.,
      741.,  742.,  743.,  744.,  745.,  746.,  747.,  748.,  749.,  750.,
      751.,  752.,  753.,  754.,  755.,  756.,  755.,  756.,  755.,  756.,
      755.,  756.,  755.,  756.,  755.,  756.,  767.,  768.,  769.,  770.,
      771.,  772.,  773.,  774.,  775.,  776.,  777.,  778.,  779.,  780.,
      781.,  782.,  783.,  784.,  783.,  784.,  783.,  784.,  783.,  784.,
      783.,  784.,  783.,  784.,  767.,  768.,  769.,  770.,  771.,  772.,
      773.,  774.,  775.,  776.,  777.,  778.,  779.,  780.,  781.,  782.,
      783.,  784.,  783.,  784.,  783.,  784.,  783.,  784.,  783.,  784.,
      783.,  784.,  767.,  768.,  769.,  770.,  771.,  772.,  773.,  774.,
      775.,  776.,  777.,  778.,  779.,  780.,  781.,  782.,  783.,  784.,
      783.,  784.,  783.,  784.,  783.,  784.,  783.,  784.,  783.,  784.,
      767.,  768.,  769.,  770.,  771.,  772.,  773.,  774.,  775.,  776.,
      777.,  778.,  779.,  780.,  781.,  782.,  783.,  784.,  783.,  784.,
      783.,  784.,  783.,  784.,  783.,  784.,  783.,  784.,  767.,  768.,
      769.,  770.,  771.,  772.,  773.,  774.,  775.,  776.,  777.,  778.,
      779.,  780.,  781.,  782.,  783.,  784.,  783.,  784.,  783.,  784.,
      783.,  784.,  783.,  784.,  783.,  784.,  767.,  768.,  769.,  770.,
      771.,  772.,  773.,  774.,  775.,  776.,  777.,  778.,  779.,  780.,
      781.,  782.,  783.,  784.,  783.,  784.,  783.,  784.,  783.,  784.,
      783.,  784.,  783.,  784.,  935.,  936.,  937.,  938.,  939.,  940.,
      941.,  942.,  943.,  944.,  945.,  946.,  947.,  948.,  949.,  950.,
      951.,  952.,  951.,  952.,  951.,  952.,  951.,  952.,  951.,  952.,
      951.,  952.,  963.,  964.,  965.,  966.,  967.,  968.,  969.,  970.,
      971.,  972.,  973.,  974.,  975.,  976.,  977.,  978.,  979.,  980.,
      979.,  980.,  979.,  980.,  979.,  980.,  979.,  980.,  979.,  980.,
      991.,  992.,  993.,  994.,  995.,  996.,  997.,  998.,  999.,  1000.,
      1001., 1002., 1003., 1004., 1005., 1006., 1007., 1008., 1007., 1008.,
      1007., 1008., 1007., 1008., 1007., 1008., 1007., 1008., 1019., 1020.,
      1021., 1022., 1023., 1024., 1025., 1026., 1027., 1028., 1029., 1030.,
      1031., 1032., 1033., 1034., 1035., 1036., 1035., 1036., 1035., 1036.,
      1035., 1036., 1035., 1036., 1035., 1036., 1047., 1048., 1049., 1050.,
      1051., 1052., 1053., 1054., 1055., 1056., 1057., 1058., 1059., 1060.,
      1061., 1062., 1063., 1064., 1063., 1064., 1063., 1064., 1063., 1064.,
      1063., 1064., 1063., 1064., 1075., 1076., 1077., 1078., 1079., 1080.,
      1081., 1082., 1083., 1084., 1085., 1086., 1087., 1088., 1089., 1090.,
      1091., 1092., 1091., 1092., 1091., 1092., 1091., 1092., 1091., 1092.,
      1091., 1092., 1103., 1104., 1105., 1106., 1107., 1108., 1109., 1110.,
      1111., 1112., 1113., 1114., 1115., 1116., 1117., 1118., 1119., 1120.,
      1119., 1120., 1119., 1120., 1119., 1120., 1119., 1120., 1119., 1120.,
      1131., 1132., 1133., 1134., 1135., 1136., 1137., 1138., 1139., 1140.,
      1141., 1142., 1143., 1144., 1145., 1146., 1147., 1148., 1147., 1148.,
      1147., 1148., 1147., 1148., 1147., 1148., 1147., 1148., 1159., 1160.,
      1161., 1162., 1163., 1164., 1165., 1166., 1167., 1168., 1169., 1170.,
      1171., 1172., 1173., 1174., 1175., 1176., 1175., 1176., 1175., 1176.,
      1175., 1176., 1175., 1176., 1175., 1176., 1159., 1160., 1161., 1162.,
      1163., 1164., 1165., 1166., 1167., 1168., 1169., 1170., 1171., 1172.,
      1173., 1174., 1175., 1176., 1175., 1176., 1175., 1176., 1175., 1176.,
      1175., 1176., 1175., 1176., 1159., 1160., 1161., 1162., 1163., 1164.,
      1165., 1166., 1167., 1168., 1169., 1170., 1171., 1172., 1173., 1174.,
      1175., 1176., 1175., 1176., 1175., 1176., 1175., 1176., 1175., 1176.,
      1175., 1176., 1159., 1160., 1161., 1162., 1163., 1164., 1165., 1166.,
      1167., 1168., 1169., 1170., 1171., 1172., 1173., 1174., 1175., 1176.,
      1175., 1176., 1175., 1176., 1175., 1176., 1175., 1176., 1175., 1176.,
      1159., 1160., 1161., 1162., 1163., 1164., 1165., 1166., 1167., 1168.,
      1169., 1170., 1171., 1172., 1173., 1174., 1175., 1176., 1175., 1176.,
      1175., 1176., 1175., 1176., 1175., 1176., 1175., 1176., 1159., 1160.,
      1161., 1162., 1163., 1164., 1165., 1166., 1167., 1168., 1169., 1170.,
      1171., 1172., 1173., 1174., 1175., 1176., 1175., 1176., 1175., 1176.,
      1175., 1176., 1175., 1176., 1175., 1176.};
  const std::array<int, 4> in_shape = {{3, 14, 14, 2}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, VALID3x14x14x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      301.,  302.,  303.,  304.,  305.,  306.,  307.,  308.,  329.,  330.,
      331.,  332.,  333.,  334.,  335.,  336.,  357.,  358.,  359.,  360.,
      361.,  362.,  363.,  364.,  385.,  386.,  387.,  388.,  389.,  390.,
      391.,  392.,  693.,  694.,  695.,  696.,  697.,  698.,  699.,  700.,
      721.,  722.,  723.,  724.,  725.,  726.,  727.,  728.,  749.,  750.,
      751.,  752.,  753.,  754.,  755.,  756.,  777.,  778.,  779.,  780.,
      781.,  782.,  783.,  784.,  1085., 1086., 1087., 1088., 1089., 1090.,
      1091., 1092., 1113., 1114., 1115., 1116., 1117., 1118., 1119., 1120.,
      1141., 1142., 1143., 1144., 1145., 1146., 1147., 1148., 1169., 1170.,
      1171., 1172., 1173., 1174., 1175., 1176.};
  const std::array<int, 4> in_shape = {{3, 14, 14, 2}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, SAME3x14x14x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      301.,  302.,  303.,  304.,  305.,  306.,  307.,  308.,  309.,  310.,
      311.,  312.,  313.,  314.,  315.,  316.,  317.,  318.,  319.,  320.,
      321.,  322.,  323.,  324.,  325.,  326.,  327.,  328.,  329.,  330.,
      331.,  332.,  333.,  334.,  335.,  336.,  333.,  334.,  335.,  336.,
      333.,  334.,  335.,  336.,  333.,  334.,  335.,  336.,  333.,  334.,
      335.,  336.,  333.,  334.,  335.,  336.,  357.,  358.,  359.,  360.,
      361.,  362.,  363.,  364.,  365.,  366.,  367.,  368.,  369.,  370.,
      371.,  372.,  373.,  374.,  375.,  376.,  377.,  378.,  379.,  380.,
      381.,  382.,  383.,  384.,  385.,  386.,  387.,  388.,  389.,  390.,
      391.,  392.,  389.,  390.,  391.,  392.,  389.,  390.,  391.,  392.,
      389.,  390.,  391.,  392.,  389.,  390.,  391.,  392.,  389.,  390.,
      391.,  392.,  413.,  414.,  415.,  416.,  417.,  418.,  419.,  420.,
      421.,  422.,  423.,  424.,  425.,  426.,  427.,  428.,  429.,  430.,
      431.,  432.,  433.,  434.,  435.,  436.,  437.,  438.,  439.,  440.,
      441.,  442.,  443.,  444.,  445.,  446.,  447.,  448.,  445.,  446.,
      447.,  448.,  445.,  446.,  447.,  448.,  445.,  446.,  447.,  448.,
      445.,  446.,  447.,  448.,  445.,  446.,  447.,  448.,  469.,  470.,
      471.,  472.,  473.,  474.,  475.,  476.,  477.,  478.,  479.,  480.,
      481.,  482.,  483.,  484.,  485.,  486.,  487.,  488.,  489.,  490.,
      491.,  492.,  493.,  494.,  495.,  496.,  497.,  498.,  499.,  500.,
      501.,  502.,  503.,  504.,  501.,  502.,  503.,  504.,  501.,  502.,
      503.,  504.,  501.,  502.,  503.,  504.,  501.,  502.,  503.,  504.,
      501.,  502.,  503.,  504.,  525.,  526.,  527.,  528.,  529.,  530.,
      531.,  532.,  533.,  534.,  535.,  536.,  537.,  538.,  539.,  540.,
      541.,  542.,  543.,  544.,  545.,  546.,  547.,  548.,  549.,  550.,
      551.,  552.,  553.,  554.,  555.,  556.,  557.,  558.,  559.,  560.,
      557.,  558.,  559.,  560.,  557.,  558.,  559.,  560.,  557.,  558.,
      559.,  560.,  557.,  558.,  559.,  560.,  557.,  558.,  559.,  560.,
      581.,  582.,  583.,  584.,  585.,  586.,  587.,  588.,  589.,  590.,
      591.,  592.,  593.,  594.,  595.,  596.,  597.,  598.,  599.,  600.,
      601.,  602.,  603.,  604.,  605.,  606.,  607.,  608.,  609.,  610.,
      611.,  612.,  613.,  614.,  615.,  616.,  613.,  614.,  615.,  616.,
      613.,  614.,  615.,  616.,  613.,  614.,  615.,  616.,  613.,  614.,
      615.,  616.,  613.,  614.,  615.,  616.,  637.,  638.,  639.,  640.,
      641.,  642.,  643.,  644.,  645.,  646.,  647.,  648.,  649.,  650.,
      651.,  652.,  653.,  654.,  655.,  656.,  657.,  658.,  659.,  660.,
      661.,  662.,  663.,  664.,  665.,  666.,  667.,  668.,  669.,  670.,
      671.,  672.,  669.,  670.,  671.,  672.,  669.,  670.,  671.,  672.,
      669.,  670.,  671.,  672.,  669.,  670.,  671.,  672.,  669.,  670.,
      671.,  672.,  693.,  694.,  695.,  696.,  697.,  698.,  699.,  700.,
      701.,  702.,  703.,  704.,  705.,  706.,  707.,  708.,  709.,  710.,
      711.,  712.,  713.,  714.,  715.,  716.,  717.,  718.,  719.,  720.,
      721.,  722.,  723.,  724.,  725.,  726.,  727.,  728.,  725.,  726.,
      727.,  728.,  725.,  726.,  727.,  728.,  725.,  726.,  727.,  728.,
      725.,  726.,  727.,  728.,  725.,  726.,  727.,  728.,  749.,  750.,
      751.,  752.,  753.,  754.,  755.,  756.,  757.,  758.,  759.,  760.,
      761.,  762.,  763.,  764.,  765.,  766.,  767.,  768.,  769.,  770.,
      771.,  772.,  773.,  774.,  775.,  776.,  777.,  778.,  779.,  780.,
      781.,  782.,  783.,  784.,  781.,  782.,  783.,  784.,  781.,  782.,
      783.,  784.,  781.,  782.,  783.,  784.,  781.,  782.,  783.,  784.,
      781.,  782.,  783.,  784.,  749.,  750.,  751.,  752.,  753.,  754.,
      755.,  756.,  757.,  758.,  759.,  760.,  761.,  762.,  763.,  764.,
      765.,  766.,  767.,  768.,  769.,  770.,  771.,  772.,  773.,  774.,
      775.,  776.,  777.,  778.,  779.,  780.,  781.,  782.,  783.,  784.,
      781.,  782.,  783.,  784.,  781.,  782.,  783.,  784.,  781.,  782.,
      783.,  784.,  781.,  782.,  783.,  784.,  781.,  782.,  783.,  784.,
      749.,  750.,  751.,  752.,  753.,  754.,  755.,  756.,  757.,  758.,
      759.,  760.,  761.,  762.,  763.,  764.,  765.,  766.,  767.,  768.,
      769.,  770.,  771.,  772.,  773.,  774.,  775.,  776.,  777.,  778.,
      779.,  780.,  781.,  782.,  783.,  784.,  781.,  782.,  783.,  784.,
      781.,  782.,  783.,  784.,  781.,  782.,  783.,  784.,  781.,  782.,
      783.,  784.,  781.,  782.,  783.,  784.,  749.,  750.,  751.,  752.,
      753.,  754.,  755.,  756.,  757.,  758.,  759.,  760.,  761.,  762.,
      763.,  764.,  765.,  766.,  767.,  768.,  769.,  770.,  771.,  772.,
      773.,  774.,  775.,  776.,  777.,  778.,  779.,  780.,  781.,  782.,
      783.,  784.,  781.,  782.,  783.,  784.,  781.,  782.,  783.,  784.,
      781.,  782.,  783.,  784.,  781.,  782.,  783.,  784.,  781.,  782.,
      783.,  784.,  749.,  750.,  751.,  752.,  753.,  754.,  755.,  756.,
      757.,  758.,  759.,  760.,  761.,  762.,  763.,  764.,  765.,  766.,
      767.,  768.,  769.,  770.,  771.,  772.,  773.,  774.,  775.,  776.,
      777.,  778.,  779.,  780.,  781.,  782.,  783.,  784.,  781.,  782.,
      783.,  784.,  781.,  782.,  783.,  784.,  781.,  782.,  783.,  784.,
      781.,  782.,  783.,  784.,  781.,  782.,  783.,  784.,  749.,  750.,
      751.,  752.,  753.,  754.,  755.,  756.,  757.,  758.,  759.,  760.,
      761.,  762.,  763.,  764.,  765.,  766.,  767.,  768.,  769.,  770.,
      771.,  772.,  773.,  774.,  775.,  776.,  777.,  778.,  779.,  780.,
      781.,  782.,  783.,  784.,  781.,  782.,  783.,  784.,  781.,  782.,
      783.,  784.,  781.,  782.,  783.,  784.,  781.,  782.,  783.,  784.,
      781.,  782.,  783.,  784.,  1085., 1086., 1087., 1088., 1089., 1090.,
      1091., 1092., 1093., 1094., 1095., 1096., 1097., 1098., 1099., 1100.,
      1101., 1102., 1103., 1104., 1105., 1106., 1107., 1108., 1109., 1110.,
      1111., 1112., 1113., 1114., 1115., 1116., 1117., 1118., 1119., 1120.,
      1117., 1118., 1119., 1120., 1117., 1118., 1119., 1120., 1117., 1118.,
      1119., 1120., 1117., 1118., 1119., 1120., 1117., 1118., 1119., 1120.,
      1141., 1142., 1143., 1144., 1145., 1146., 1147., 1148., 1149., 1150.,
      1151., 1152., 1153., 1154., 1155., 1156., 1157., 1158., 1159., 1160.,
      1161., 1162., 1163., 1164., 1165., 1166., 1167., 1168., 1169., 1170.,
      1171., 1172., 1173., 1174., 1175., 1176., 1173., 1174., 1175., 1176.,
      1173., 1174., 1175., 1176., 1173., 1174., 1175., 1176., 1173., 1174.,
      1175., 1176., 1173., 1174., 1175., 1176., 1197., 1198., 1199., 1200.,
      1201., 1202., 1203., 1204., 1205., 1206., 1207., 1208., 1209., 1210.,
      1211., 1212., 1213., 1214., 1215., 1216., 1217., 1218., 1219., 1220.,
      1221., 1222., 1223., 1224., 1225., 1226., 1227., 1228., 1229., 1230.,
      1231., 1232., 1229., 1230., 1231., 1232., 1229., 1230., 1231., 1232.,
      1229., 1230., 1231., 1232., 1229., 1230., 1231., 1232., 1229., 1230.,
      1231., 1232., 1253., 1254., 1255., 1256., 1257., 1258., 1259., 1260.,
      1261., 1262., 1263., 1264., 1265., 1266., 1267., 1268., 1269., 1270.,
      1271., 1272., 1273., 1274., 1275., 1276., 1277., 1278., 1279., 1280.,
      1281., 1282., 1283., 1284., 1285., 1286., 1287., 1288., 1285., 1286.,
      1287., 1288., 1285., 1286., 1287., 1288., 1285., 1286., 1287., 1288.,
      1285., 1286., 1287., 1288., 1285., 1286., 1287., 1288., 1309., 1310.,
      1311., 1312., 1313., 1314., 1315., 1316., 1317., 1318., 1319., 1320.,
      1321., 1322., 1323., 1324., 1325., 1326., 1327., 1328., 1329., 1330.,
      1331., 1332., 1333., 1334., 1335., 1336., 1337., 1338., 1339., 1340.,
      1341., 1342., 1343., 1344., 1341., 1342., 1343., 1344., 1341., 1342.,
      1343., 1344., 1341., 1342., 1343., 1344., 1341., 1342., 1343., 1344.,
      1341., 1342., 1343., 1344., 1365., 1366., 1367., 1368., 1369., 1370.,
      1371., 1372., 1373., 1374., 1375., 1376., 1377., 1378., 1379., 1380.,
      1381., 1382., 1383., 1384., 1385., 1386., 1387., 1388., 1389., 1390.,
      1391., 1392., 1393., 1394., 1395., 1396., 1397., 1398., 1399., 1400.,
      1397., 1398., 1399., 1400., 1397., 1398., 1399., 1400., 1397., 1398.,
      1399., 1400., 1397., 1398., 1399., 1400., 1397., 1398., 1399., 1400.,
      1421., 1422., 1423., 1424., 1425., 1426., 1427., 1428., 1429., 1430.,
      1431., 1432., 1433., 1434., 1435., 1436., 1437., 1438., 1439., 1440.,
      1441., 1442., 1443., 1444., 1445., 1446., 1447., 1448., 1449., 1450.,
      1451., 1452., 1453., 1454., 1455., 1456., 1453., 1454., 1455., 1456.,
      1453., 1454., 1455., 1456., 1453., 1454., 1455., 1456., 1453., 1454.,
      1455., 1456., 1453., 1454., 1455., 1456., 1477., 1478., 1479., 1480.,
      1481., 1482., 1483., 1484., 1485., 1486., 1487., 1488., 1489., 1490.,
      1491., 1492., 1493., 1494., 1495., 1496., 1497., 1498., 1499., 1500.,
      1501., 1502., 1503., 1504., 1505., 1506., 1507., 1508., 1509., 1510.,
      1511., 1512., 1509., 1510., 1511., 1512., 1509., 1510., 1511., 1512.,
      1509., 1510., 1511., 1512., 1509., 1510., 1511., 1512., 1509., 1510.,
      1511., 1512., 1533., 1534., 1535., 1536., 1537., 1538., 1539., 1540.,
      1541., 1542., 1543., 1544., 1545., 1546., 1547., 1548., 1549., 1550.,
      1551., 1552., 1553., 1554., 1555., 1556., 1557., 1558., 1559., 1560.,
      1561., 1562., 1563., 1564., 1565., 1566., 1567., 1568., 1565., 1566.,
      1567., 1568., 1565., 1566., 1567., 1568., 1565., 1566., 1567., 1568.,
      1565., 1566., 1567., 1568., 1565., 1566., 1567., 1568., 1533., 1534.,
      1535., 1536., 1537., 1538., 1539., 1540., 1541., 1542., 1543., 1544.,
      1545., 1546., 1547., 1548., 1549., 1550., 1551., 1552., 1553., 1554.,
      1555., 1556., 1557., 1558., 1559., 1560., 1561., 1562., 1563., 1564.,
      1565., 1566., 1567., 1568., 1565., 1566., 1567., 1568., 1565., 1566.,
      1567., 1568., 1565., 1566., 1567., 1568., 1565., 1566., 1567., 1568.,
      1565., 1566., 1567., 1568., 1533., 1534., 1535., 1536., 1537., 1538.,
      1539., 1540., 1541., 1542., 1543., 1544., 1545., 1546., 1547., 1548.,
      1549., 1550., 1551., 1552., 1553., 1554., 1555., 1556., 1557., 1558.,
      1559., 1560., 1561., 1562., 1563., 1564., 1565., 1566., 1567., 1568.,
      1565., 1566., 1567., 1568., 1565., 1566., 1567., 1568., 1565., 1566.,
      1567., 1568., 1565., 1566., 1567., 1568., 1565., 1566., 1567., 1568.,
      1533., 1534., 1535., 1536., 1537., 1538., 1539., 1540., 1541., 1542.,
      1543., 1544., 1545., 1546., 1547., 1548., 1549., 1550., 1551., 1552.,
      1553., 1554., 1555., 1556., 1557., 1558., 1559., 1560., 1561., 1562.,
      1563., 1564., 1565., 1566., 1567., 1568., 1565., 1566., 1567., 1568.,
      1565., 1566., 1567., 1568., 1565., 1566., 1567., 1568., 1565., 1566.,
      1567., 1568., 1565., 1566., 1567., 1568., 1533., 1534., 1535., 1536.,
      1537., 1538., 1539., 1540., 1541., 1542., 1543., 1544., 1545., 1546.,
      1547., 1548., 1549., 1550., 1551., 1552., 1553., 1554., 1555., 1556.,
      1557., 1558., 1559., 1560., 1561., 1562., 1563., 1564., 1565., 1566.,
      1567., 1568., 1565., 1566., 1567., 1568., 1565., 1566., 1567., 1568.,
      1565., 1566., 1567., 1568., 1565., 1566., 1567., 1568., 1565., 1566.,
      1567., 1568., 1533., 1534., 1535., 1536., 1537., 1538., 1539., 1540.,
      1541., 1542., 1543., 1544., 1545., 1546., 1547., 1548., 1549., 1550.,
      1551., 1552., 1553., 1554., 1555., 1556., 1557., 1558., 1559., 1560.,
      1561., 1562., 1563., 1564., 1565., 1566., 1567., 1568., 1565., 1566.,
      1567., 1568., 1565., 1566., 1567., 1568., 1565., 1566., 1567., 1568.,
      1565., 1566., 1567., 1568., 1565., 1566., 1567., 1568., 1869., 1870.,
      1871., 1872., 1873., 1874., 1875., 1876., 1877., 1878., 1879., 1880.,
      1881., 1882., 1883., 1884., 1885., 1886., 1887., 1888., 1889., 1890.,
      1891., 1892., 1893., 1894., 1895., 1896., 1897., 1898., 1899., 1900.,
      1901., 1902., 1903., 1904., 1901., 1902., 1903., 1904., 1901., 1902.,
      1903., 1904., 1901., 1902., 1903., 1904., 1901., 1902., 1903., 1904.,
      1901., 1902., 1903., 1904., 1925., 1926., 1927., 1928., 1929., 1930.,
      1931., 1932., 1933., 1934., 1935., 1936., 1937., 1938., 1939., 1940.,
      1941., 1942., 1943., 1944., 1945., 1946., 1947., 1948., 1949., 1950.,
      1951., 1952., 1953., 1954., 1955., 1956., 1957., 1958., 1959., 1960.,
      1957., 1958., 1959., 1960., 1957., 1958., 1959., 1960., 1957., 1958.,
      1959., 1960., 1957., 1958., 1959., 1960., 1957., 1958., 1959., 1960.,
      1981., 1982., 1983., 1984., 1985., 1986., 1987., 1988., 1989., 1990.,
      1991., 1992., 1993., 1994., 1995., 1996., 1997., 1998., 1999., 2000.,
      2001., 2002., 2003., 2004., 2005., 2006., 2007., 2008., 2009., 2010.,
      2011., 2012., 2013., 2014., 2015., 2016., 2013., 2014., 2015., 2016.,
      2013., 2014., 2015., 2016., 2013., 2014., 2015., 2016., 2013., 2014.,
      2015., 2016., 2013., 2014., 2015., 2016., 2037., 2038., 2039., 2040.,
      2041., 2042., 2043., 2044., 2045., 2046., 2047., 2048., 2045., 2046.,
      2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048.,
      2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046.,
      2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048.,
      2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048., 2013., 2014.,
      2015., 2016., 2037., 2038., 2039., 2040., 2041., 2042., 2043., 2044.,
      2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046.,
      2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048.,
      2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046.,
      2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048.,
      2045., 2046., 2047., 2048., 2013., 2014., 2015., 2016., 2037., 2038.,
      2039., 2040., 2041., 2042., 2043., 2044., 2045., 2046., 2047., 2048.,
      2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046.,
      2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048.,
      2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046.,
      2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048.,
      2013., 2014., 2015., 2016., 2037., 2038., 2039., 2040., 2041., 2042.,
      2043., 2044., 2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048.,
      2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046.,
      2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048.,
      2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046.,
      2047., 2048., 2045., 2046., 2047., 2048., 2013., 2014., 2015., 2016.,
      2037., 2038., 2039., 2040., 2041., 2042., 2043., 2044., 2045., 2046.,
      2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048.,
      2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046.,
      2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048.,
      2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046.,
      2047., 2048., 2013., 2014., 2015., 2016., 2037., 2038., 2039., 2040.,
      2041., 2042., 2043., 2044., 2045., 2046., 2047., 2048., 2045., 2046.,
      2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048.,
      2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046.,
      2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048.,
      2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048., 2013., 2014.,
      2015., 2016., 2037., 2038., 2039., 2040., 2041., 2042., 2043., 2044.,
      2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046.,
      2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048.,
      2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046.,
      2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048.,
      2045., 2046., 2047., 2048., 2013., 2014., 2015., 2016., 2037., 2038.,
      2039., 2040., 2041., 2042., 2043., 2044., 2045., 2046., 2047., 2048.,
      2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046.,
      2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048.,
      2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046.,
      2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048.,
      2013., 2014., 2015., 2016., 2037., 2038., 2039., 2040., 2041., 2042.,
      2043., 2044., 2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048.,
      2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046.,
      2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048.,
      2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046.,
      2047., 2048., 2045., 2046., 2047., 2048., 2013., 2014., 2015., 2016.,
      2037., 2038., 2039., 2040., 2041., 2042., 2043., 2044., 2045., 2046.,
      2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048.,
      2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046.,
      2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048.,
      2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046.,
      2047., 2048., 2013., 2014., 2015., 2016., 2037., 2038., 2039., 2040.,
      2041., 2042., 2043., 2044., 2045., 2046., 2047., 2048., 2045., 2046.,
      2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048.,
      2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046.,
      2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048.,
      2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048., 301.,  302.,
      303.,  304.};
  const std::array<int, 4> in_shape = {{3, 14, 14, 4}};
  const auto padding = PaddingMode::SAME;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
TYPED_TEST(MaxwithnanWindow11Stride1Forward, VALID3x14x14x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      601.,  602.,  603.,  604.,  605.,  606.,  607.,  608.,  609.,  610.,
      611.,  612.,  613.,  614.,  615.,  616.,  657.,  658.,  659.,  660.,
      661.,  662.,  663.,  664.,  665.,  666.,  667.,  668.,  669.,  670.,
      671.,  672.,  713.,  714.,  715.,  716.,  717.,  718.,  719.,  720.,
      721.,  722.,  723.,  724.,  725.,  726.,  727.,  728.,  769.,  770.,
      771.,  772.,  773.,  774.,  775.,  776.,  777.,  778.,  779.,  780.,
      781.,  782.,  783.,  784.,  1385., 1386., 1387., 1388., 1389., 1390.,
      1391., 1392., 1393., 1394., 1395., 1396., 1397., 1398., 1399., 1400.,
      1441., 1442., 1443., 1444., 1445., 1446., 1447., 1448., 1449., 1450.,
      1451., 1452., 1453., 1454., 1455., 1456., 1497., 1498., 1499., 1500.,
      1501., 1502., 1503., 1504., 1505., 1506., 1507., 1508., 1509., 1510.,
      1511., 1512., 1553., 1554., 1555., 1556., 1557., 1558., 1559., 1560.,
      1561., 1562., 1563., 1564., 1565., 1566., 1567., 1568., 2045., 2046.,
      2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048.,
      2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046.,
      2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048.,
      2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046.,
      2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048.,
      2045., 2046., 2047., 2048., 2045., 2046., 2047., 2048., 2045., 2046.,
      2047., 2048.};
  const std::array<int, 4> in_shape = {{3, 14, 14, 4}};
  const auto padding = PaddingMode::VALID;
  const auto params = getPoolingParams<11, 1>(in_shape, padding);
  const DataType max_input_val = 2048.0;
  this->test_pool(exp_out, params, max_input_val);
}
